Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android: How to resize image to fill parent?

I am working on application which shows images, and I need to create a view which shows big images in a 1:1 aspect ratio.

First, I have thumbnails which are at a 72x72 resolution. I have put them in an ImageView but even if I add the parameters android:width="fill_parent" and android:height="wrap_content", the image would not be not the size of the ImageView but is only centered in the mid.

I tried adding the parameter android:scaleType="centerCrop" which resized the image well horizontally but the height remained the same.

How could I set up my ImageView so that it would be on all devices as width as the parent view and it should also be as height.

I can do this programatically, but I need to be able to do it in XML.

My XML File:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    // The ImageView I am talking about above
    <ImageView
        android:id="@+id/invitation_imageview"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_margin="1dp"
        android:scaleType="centerCrop"
        android:src="@drawable/face_woman_smile" />

    <ImageView
        android:id="@+id/invitation_avatar_view_1"
        android:layout_width="wrap_content"
        android:layout_height="40dp"
        android:src="@drawable/face_woman_smile"
        android:scaleType="center"
        android:layout_margin="1dp" />

</LinearLayout>
like image 884
Csabi Avatar asked Apr 29 '15 13:04

Csabi


3 Answers

I think you need to add this to your ImageView

android:adjustViewBounds="true"
like image 147
Bojan Kseneman Avatar answered Oct 25 '22 05:10

Bojan Kseneman


Use:

android:scaleType="fitXY"
like image 2
Abdul Momen Khan Avatar answered Oct 25 '22 04:10

Abdul Momen Khan


To make image stretch to parent's width while keeping aspect ratio

Set

1- android:layout_width to match_parent

2- layout_height to wrap_content

3- adjustViewBounds to true

Like this:

<ImageView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/imageView"
    android:src="@drawable/unknown"
    android:adjustViewBounds="true" />

Note: This might not render correctly in Preview but would work on runtime.

like image 2
Asif Mujteba Avatar answered Oct 25 '22 04:10

Asif Mujteba