Necesito incluir un gráfico de encabezado en todas mis actividades / vistas. El archivo con el encabezado se llama 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>
Tenga en cuenta el android:background="#00FF00"
(verde), es solo para fines de visualización.
Los incluyo en mis puntos de vista de esta manera:
<?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" />
(...)
Entonces, cuando realmente lo pruebo, el resultado se ve como la imagen de la izquierda, en lugar de cómo debería verse (derecha):
(1) Esta parte, la naranja, es la imagen / ImageView en cuestión
(2) El borde verde no amado. nota: normalmente, el área verde sería transparente: solo es verde porque configuré el background
.
Tenga en cuenta el borde verde alrededor de la imagen en la parte superior; Es parte de ImageView y no puedo entender por qué está allí o cómo puedo deshacerme de él. Estableció todos los rellenos y márgenes en 0 (pero el resultado es el mismo cuando los omito). La imagen es un jpeg * de 480x64px y la puse en res / drawable (no en una de ellas drawable-Xdpi
).
(* jpeg, porque parece que me topé con el viejo problema de gamma png, al principio solucioné el problema haciendo que el borde verde fuera el mismo naranja que la imagen, y los colores no coincidían).
Lo probé en mi htc desire / 2.2 / Build 2.33.163.1 y en el emulador. También describí el problema a alguien en # android-dev; Ella podía reproducir el problema pero tampoco tenía explicación. El objetivo de construcción es 1.6.
actualizar @tehgoose: este código produce exactamente el mismo resultado de relleno superior + 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"