ฉันต้องรวมกราฟิกส่วนหัวในทุกกิจกรรม / มุมมองของฉัน ไฟล์ที่มีส่วนหัวเรียกว่า header.xml:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#0000FF"
android:padding="0dip">
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_margin="0dip"
android:layout_marginTop="0dip"
android:layout_marginBottom="0dip"
android:padding="0dip"
android:paddingTop="0dip"
android:paddingBottom="0dip"
android:layout_gravity="fill"
android:background="#00FF00"
/>
</FrameLayout>
สังเกตandroid:background="#00FF00"
(สีเขียว) มันเป็นเพียงจุดประสงค์ในการสร้างภาพ
ฉันรวมไว้ในมุมมองของฉันเช่นนี้:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
style="@style/white_background">
<include layout="@layout/header" />
(...)
ดังนั้นเมื่อฉันลองใช้จริงผลที่ได้จะเป็นรูปซ้ายแทนที่จะเป็นรูป (ขวา):
(1) ส่วนนี้ - สีส้ม - ส่วนที่เป็นรูปภาพ / ImageView ในคำถาม
(2) ขอบสีเขียวที่ไม่ได้รับการแก้ไข หมายเหตุ: ตามปกติพื้นที่สีเขียวจะมีความโปร่งใส - background
มันสีเขียวเพียงเพราะผมตั้ง
สังเกตกรอบสีเขียวรอบ ๆ รูปภาพที่ด้านบน มันเป็นส่วนหนึ่งของ ImageView และฉันไม่สามารถเข้าใจได้ว่าทำไมมันถึงอยู่ที่นั่นหรือฉันจะกำจัดมันได้อย่างไร มันตั้งค่าการเติมเต็มและระยะขอบทั้งหมดเป็น 0 (แต่ผลลัพธ์จะเหมือนกันเมื่อฉันละเว้น) ภาพเป็น 480x64px jpeg * และฉันวางไว้ใน res / drawable (ไม่ใช่ในอย่างใดอย่างหนึ่งdrawable-Xdpi
)
(* jpeg เพราะดูเหมือนว่าฉันเจอปัญหา png gamma เก่า - ตอนแรกฉันแก้ปัญหาด้วยการทำให้เส้นขอบสีเขียวเป็นสีส้มเหมือนภาพและสีไม่ตรงกัน)
ฉันลองใช้กับ htc desire / 2.2 / Build 2.33.163.1 และจำลอง ฉันอธิบายปัญหาให้กับใครบางคนใน # android-dev; เธอสามารถสร้างปัญหาขึ้นมาใหม่ได้ แต่ก็ไม่มีคำอธิบายเช่นกัน เป้าหมายการสร้างคือ 1.6
update @tehgoose: รหัสนี้ให้ผลลัพธ์ด้านบน + ล่างที่เหมือนกันทั้งหมด
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
style="@style/white_background">
<!-- <include layout="@layout/header" /> -->
<ImageView
android:src="@drawable/header"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#00FF00"
android:layout_weight="0"
/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="8dip"
android:layout_weight="1">
(... rest of the elements)
</LinearLayout>
</LinearLayout>
android:layout_margin="-10dp"
android:padding="-10dp"