j'ai besoin d'inclure un en-tête graphique dans toutes mes activités/points de vue. le fichier avec l'en-tête est appelé 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>
remarque l' android:background="#00FF00"
(vert), c'est juste à des fins de visualisation.
- je inclure dans mon point de vue comme ceci:
<?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" />
(...)
donc, quand j'ai vraiment l'essayer, le résultat ressemble à la gauche de l'image, au lieu de ce qu'il devrait ressembler (à droite):
(1) ce - orange - partie est l'image/ImageView en question
(2) le mal-aimé bordure verte. remarque: normalement, l'espace vert transparent - c'est uniquement en vert car j'ai mis l' background
.
note de la frontière verte autour de l'image en haut; c'est une partie de l'ImageView et je ne peux pas comprendre pourquoi il est là ou comment je peux me débarrasser d'elle. elle a mis tous les rembourrages et les marges à 0 (mais le résultat est le même quand je les omettre) . l'image est un 480x64px jpeg* et je l'ai mis dans res/drawable (pas dans un de la drawable-Xdpi
tout de même).
(* jpeg, car il semble que je suis tombé sur l'ancien png gamma problème - au début, j'ai contourné le problème en faisant de la frontière verte le même orange que l'image, et les couleurs ne correspondent pas.)
je l'ai essayé sur mon htc desire/2.2/Construire 2.33.163.1 et sur l'émulateur. aussi, j'ai décrit le problème à quelqu'un dans #android-dev; elle a pu reproduire le problème, mais aucune explication n'était fournie. construire objectif est de 1,6.
mise à jour @tehgoose: ce code donne l'exacte même haut+bas collier de résultat.
<?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>