Preciso incluir um gráfico de cabeçalho em todas as minhas atividades / visualizações. O arquivo com o cabeçalho é chamado 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>
Observe o android:background="#00FF00"
(verde), é apenas para fins de visualização.
Eu os incluo em meus pontos de vista como este:
<?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" />
(...)
Então, quando eu realmente testo, o resultado se parece com a imagem da esquerda, em vez de como deveria ser (à direita):
(1) Esta parte - a laranja - é a imagem / ImageView em questão
(2) A borda verde não amada. nota: normalmente, a área verde seria transparente - só é verde porque eu defino o background
.
Observe a borda verde ao redor da imagem na parte superior; É parte do ImageView e simplesmente não consigo descobrir por que ele está lá ou como posso me livrar dele. Ele definiu todos os preenchimentos e margens para 0 (mas o resultado é o mesmo quando eu os omito). A imagem é um jpeg * de 480x64px * e eu a coloco em res / drawable (não em uma das opções drawable-Xdpi
).
(* jpeg, porque parece que me deparei com o antigo problema de png png - no começo, resolvi o problema, deixando a borda verde da mesma cor laranja da imagem e as cores não correspondiam.)
Eu tentei no meu htc desejo / 2.2 / Build 2.33.163.1 e no emulador. Também descrevi o problema para alguém no # android-dev; Ela podia reproduzir o problema, mas também não tinha explicação. O destino da compilação é 1.6.
update @tehgoose: esse código gera exatamente o mesmo resultado acolchoado superior e inferior.
<?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"