Devo includere un grafico dell'intestazione in tutte le mie attività / viste. Il file con l'intestazione si chiama 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>
Nota il android:background="#00FF00"
(verde), è solo scopi di visualizzazione.
Li includo nei miei punti di vista in questo modo:
<?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" />
(...)
Quindi, quando lo provo davvero, il risultato appare come l'immagine a sinistra, invece di come dovrebbe essere (a destra):
(1) Questa - la parte arancione - è l'immagine / ImageView in questione
(2) Il bordo verde non amato. nota: normalmente, l'area verde sarebbe trasparente - È solo verde perché ho impostato il background
.
Nota il bordo verde attorno all'immagine in alto; Fa parte di ImageView e non riesco proprio a capire perché sia lì o come posso liberarmene. Imposta tutti i padding e i margini su 0 (ma il risultato è lo stesso quando li ometto). L'immagine è un jpeg * 480x64px e l'ho messo in res / drawable (non in uno dei due drawable-Xdpi
).
(* jpeg, perché sembra che mi sia imbattuto nel vecchio problema gamma png - all'inizio ho aggirato il problema rendendo il bordo verde lo stesso arancio dell'immagine e i colori non corrispondevano.)
L'ho provato sul mio desiderio HTC / 2.2 / Build 2.33.163.1 e sull'emulatore. Inoltre ho descritto il problema a qualcuno in # android-dev; Poteva riprodurre il problema, ma non aveva nemmeno una spiegazione. il target di costruzione è 1.6.
update @tehgoose: questo codice produce esattamente lo stesso risultato con riempimento superiore + inferiore.
<?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"