Android的XML布局与layout_height =“wrap_content”ImageView有填充顶部和底部

我有一个垂直LinearLayout包含一个ImageView和一些其他布局和视图。

<?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> 

我的问题是,当活动显示时,ImageView的顶部和底部有一个填充。 我已经确认它是ImageView(通过在ImageView上设置背景颜色)。

图像是450x450px。 手动设置高度为450px会产生所需的效果(无填充),将其设置为450dp会产生与使用wrap_content相同的效果。

看来,Android正在采取图像的高度(450px),并设置ImageView的高度相同的值,但在DP。

任何想法,我可以做什么来解决这个问题? 我不想使用绝对值,因为我将为不同的屏幕密度提供不同的图像。

我有一个类似的问题,解决了它在ImageView上使用android:adjustViewBounds="true"

 <ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:adjustViewBounds="true" android:contentDescription="@string/banner_alt" android:src="@drawable/banner_portrait" />