Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ImageView in android XML layout with layout_height="wrap_content" has padding top & bottom

I have a vertical LinearLayout containing an ImageView and a few other layouts and views.

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

My problem is that when the activity is displayed, the ImageView has a padding at the top & bottom. I've confirmed it is the ImageView (by setting a background colour on the ImageView).

The image is 450x450px. Setting the height manually to 450px produces the desired effect (no padding), and setting it to 450dp produces the same effect as using wrap_content.

It seems that android is taking the height of the image (450px) and setting the height of the ImageView to the same value, but in dp.

Any ideas as to what I can do to fix this? I don't want to use absolute values as I'll be providing different images for different screen densities.

like image 802
gsteinert Avatar asked Mar 04 '12 09:03

gsteinert


1 Answers

I had a simular issue and resolved it using android:adjustViewBounds="true" on the 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" /> 
like image 62
Jan-Terje Sørensen Avatar answered Oct 02 '22 14:10

Jan-Terje Sørensen