Saya perlu memasukkan grafik header di semua kegiatan / tampilan saya. File dengan header disebut 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>
Perhatikan android:background="#00FF00"
(hijau), itu hanya tujuan visualisasi.
Saya memasukkan mereka ke dalam pandangan saya seperti ini:
<?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" />
(...)
Jadi, ketika saya benar-benar mencobanya, hasilnya terlihat seperti gambar kiri, bukan seperti apa seharusnya (kanan):
(1) Ini - bagian oranye adalah gambar / ImageView dalam pertanyaan
(2) Perbatasan hijau yang tidak dicintai. Catatan: biasanya, area hijau akan transparan - Ini hanya hijau karena saya mengatur background
.
Perhatikan batas hijau di sekitar gambar di atas; Itu adalah bagian dari ImageView dan saya tidak tahu mengapa itu ada di sana atau bagaimana saya bisa menghilangkannya. Ini mengatur semua paddings dan margin ke 0 (tapi hasilnya sama ketika saya menghilangkannya). Gambar adalah jpeg 480x64px * dan saya menaruhnya di res / drawable (bukan di salah satu dari itu drawable-Xdpi
)
(* jpeg, karena sepertinya saya menemukan masalah gamma png lama - pada awalnya saya mengatasi masalah dengan membuat perbatasan hijau oranye sama seperti gambar, dan warnanya tidak cocok.)
Saya mencobanya pada keinginan htc saya / 2.2 / Build 2.33.163.1 dan pada emulator. Saya juga menjelaskan masalahnya kepada seseorang di # android-dev; Dia bisa mereproduksi masalah tetapi juga tidak punya penjelasan. membangun target adalah 1.6.
update @tehgoose: kode ini menghasilkan hasil padded atas + bawah yang sama persis.
<?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"