I have an image that is 480 pixels by 40 pixels. I would like to show this image in an ImageView without having it scale to fit.
Ex: If my screen is only 320pixels wide I would like only 320pixels of the image to show on the screen, not have it cram itself into the ImageView (even if it means that the rest of the image gets cut off).
Is there a way to prevent it from scaling to fit?
EDIT: Also, I would like the left side of the image to line up with the left side of the device's screen.
Thanks
Use ScaleType.CENTER
, like this in XML:
android:scaleType="center"
This will "center the image in the view, but perform no scaling"
Read more here: http://developer.android.com/reference/android/widget/ImageView.ScaleType.html
(This is by the way the first hit on googling "imageview scale")
Use the MATRIX scaletype to set it for no scaling and no centering
It will use the identity matrix unless you set it using setImageMatrix(matrix);
android:scaleType="matrix"
Or in Java:
view.setScaleType(ImageView.ScaleType.MATRIX);
Try this one:
android:adjustViewBounds="true"
android:scaleType="centerCrop"
I had a similar issue where I had a fixed size graphic that I wanted to scale to the screen but stay in proportion it was 480 x 200.
I used Fill_parent on the height so it would scale and wrap_content on the width.
As well as Align Parent Left and Align Parent Top.
In your case you could just use wrap_content on both as well as Align Parent Left.
Then I tweeked the width using Right Margin 180dp on normal screens to be sure it maintained the width.
<ImageView
android:id="@+id/imageLayer"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginRight="180dp"
tools:ignore="ContentDescription" />
If
android:scaleType="center"
doesn't work,
check how do you set your image.
You have to use android:src, not android:backgorund
so
android:scaleType="center"
android:src="@drawable/yourDrawable"