ImageView fit without stretching the image
is it possible that my ImageView
will fit to all screen sizes without the image look stretched?
i tried all scale types changing it to background and src with fill_parent
> wrap_content
but still. if the image is not smaller it just looks stretched..
example:
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:adjustViewBounds="true"
android:background="@drawable/background" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:background="@drawable/background" />
these 2 fits the width but the image is stretched.. but when i change it to src the image is just centered and small.
Solution 1:
There is no built-in scale type that allows the ImageView
to automatically upscale the image and keep its aspect ratio intact. The only scale type that does upscaling is fitXY
, which won't respect the aspect ratio, as you found out yourself too.
That being said, this topic has already been visited more than once. Have a look at some of the proposed suggestions for similar questions:
- ImageView one dimension to fit free space and second evaluate to keep aspect ration
- Fit image into ImageView, keep aspect ratio and then resize ImageView to image dimensions?
- Resizing ImageView to fit to aspect ratio
I'm sure'll be heaps more, so it might worth using the search box at the top.
Solution 2:
You can do it by just adding just one attributes to ImageView
android:adjustViewBounds="true"