J'ai un LinearLayout vertical contenant un ImageView et quelques autres dispositions et vues.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<ImageView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:contentDescription="@string/banner_alt"
Android:src="@drawable/banner_portrait" />
<TextView
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="@string/main_search"
Android:gravity="center"
Android:textStyle="bold" />
<LinearLayout
Android:orientation="horizontal"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" >
<Spinner
Android:id="@+id/search_city_spinner"
Android:layout_width="0px"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:Prompt="@string/search_city_Prompt"
Android:entries="@array/search_city_array" />
<Spinner
Android:id="@+id/search_area_spinner"
Android:layout_width="0px"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:Prompt="@string/search_area_Prompt"
Android:entries="@array/search_area_array" />
</LinearLayout>
<LinearLayout
Android:orientation="horizontal"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" >
<Spinner
Android:id="@+id/search_rooms_spinner"
Android:layout_width="0px"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:Prompt="@string/search_rooms_Prompt"
Android:entries="@array/search_rooms_array" />
<Spinner
Android:id="@+id/search_min_spinner"
Android:layout_width="0px"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:Prompt="@string/search_min_Prompt"
Android:entries="@array/search_min_array" />
<Spinner
Android:id="@+id/search_max_spinner"
Android:layout_width="0px"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:Prompt="@string/search_max_Prompt"
Android:entries="@array/search_max_array" />
</LinearLayout>
<Button
Android:id="@+id/saearch_button"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:text="@string/search_button"
Android:onClick="searchButton" />
</LinearLayout>
Mon problème est que, lorsque l'activité est affichée, ImageView a un remplissage en haut et en bas. J'ai confirmé qu'il s'agit de ImageView (en définissant une couleur d'arrière-plan sur ImageView).
L'image est 450x450px. Le réglage manuel de la hauteur à 450px produit l’effet souhaité (pas de remplissage) et son réglage à 450dp produit le même effet que l’utilisation de wrap_content.
Il semble que Android prend la hauteur de l’image (450 pixels) et définit la hauteur du ImageView sur la même valeur, mais en dp.
Des idées sur ce que je peux faire pour résoudre ce problème? Je ne veux pas utiliser de valeurs absolues car je fournirai différentes images pour différentes densités d'écran.
J'ai eu un problème similaire et je l'ai résolu en utilisant Android:adjustViewBounds="true"
Sur ImageView.
<ImageView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:adjustViewBounds="true"
Android:contentDescription="@string/banner_alt"
Android:src="@drawable/banner_portrait" />