Muszę dołączyć grafikę nagłówka do wszystkich moich działań / widoków. Plik z nagłówkiem nazywa się 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>
Zwróć uwagę na android:background="#00FF00"
(zielony), to tylko cele wizualizacji.
Uwzględniam je w moich poglądach w ten sposób:
<?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" />
(...)
Tak więc, kiedy faktycznie to wypróbuję, wynik wygląda jak lewy obraz, a nie jak powinien wyglądać (po prawej):
(1) Ta - pomarańczowa - część to przedmiotowy obraz / ImageView
(2) Niekochana zielona ramka. uwaga: normalnie zielony obszar byłby przezroczysty - jest zielony tylko dlatego, że ustawiłem background
.
Zwróć uwagę na zieloną ramkę wokół obrazu u góry; Jest częścią ImageView i po prostu nie mogę zrozumieć, dlaczego tam jest ani jak mogę się go pozbyć. Ustawia wszystkie wypełnienia i marginesy na 0 (ale wynik jest taki sam, gdy je pomijam). Obraz ma format JPEG * 480x64px i umieściłem go w res / drawable (nie w jednym z tych drawable-Xdpi
).
(* jpeg, ponieważ wygląda na to, że natknąłem się na stary problem z gamma png - na początku obejrzałem ten problem, ustawiając zieloną ramkę na tę samą pomarańczową co na zdjęciu, a kolory nie pasowały.)
Wypróbowałem to na moim htc Desire / 2.2 / Build 2.33.163.1 i na emulatorze. Opisałem również problem komuś w # android-dev; Mogła odtworzyć problem, ale też nie miała wytłumaczenia. docelowa kompilacja to 1,6.
update @tehgoose: ten kod daje dokładnie ten sam wynik z dopełnieniem góra i dół.
<?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"