I have an imageview that has its height and width set to fill_parent with a linearlayout that has the same values set. So I suppose this should set my images to fit the screen. But it only fits like 80% (margin top and bottom in landscape mode).
I've tried the following code without success:
Display display = getWindowManager().getDefaultDisplay();
int width = display.getWidth();
int height = display.getHeight();
imgView.setMinimumWidth(width);
imgView.setMinimumHeight(height);
imgView.setMaxWidth(width);
imgView.setMaxHeight(height);
Any other ideas?
use imgview.setScaleType(ScaleType.FIT_XY);
Give in the xml file of your layout android:scaleType="fitXY"
P.S : this applies to when the image is set with android:src="..." rather than android:background="..." as backgrounds are set by default to stretch and fit to the View.
use this:
ImageView.setAdjustViewBounds(true);
if you use android:scaleType="fitXY" then you must specify
android:layout_width="75dp" and android:layout_height="75dp"
if use wrap_content it will not stretch to what you need
<ImageView
android:layout_width="75dp"
android:layout_height="75dp"
android:id="@+id/listItemNoteImage"
android:src="@drawable/MyImage"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:layout_marginStart="12dp"
android:scaleType="fitXY"/>
The accepted answer is perfect, however if you want to do it from xml, you can use android:scaleType="fitXY"
I Have used this android:scaleType="fitXY" code in Xml file.
just change your ImageView height and width to wrap_content and use
exampleImage.setScaleType(ImageView.ScaleType.FIT_XY);
in your code.
Trying using :
imageview.setFitToScreen(true);
imageview.setScaleType(ScaleType.FIT_CENTER);
This will fit your imageview to the screen with the correct ratio.
来源:https://stackoverflow.com/questions/4668001/android-stretch-image-in-imageview-to-fit-screen