2011-01-12 72 views
110

我有一个imageview,它的高度和宽度设置为fill_parent,其中linearlayout具有相同的值集。所以我想这应该设置我的图像适合屏幕。但它只适合80%(在横向模式下保证金顶部和底部)。android:在imageview中将图像拉伸为适合屏幕

我已经尝试没有成功下面的代码:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth(); 
int height = display.getHeight(); 

imgView.setMinimumWidth(width); 
imgView.setMinimumHeight(height); 

imgView.setMaxWidth(width); 
imgView.setMaxHeight(height); 

任何其他的想法?

+0

虽然这是一个稍微不同的问题,你必须指定

android:layout_width="75dp"android:layout_height="75dp"

,[这个答案](http://stackoverflow.com/questions/2991110/android-how-to-stretch-an-image-to-the-screen-width-while-maintaining-aspect-rat/2999707#2999707)应该可以帮到你。 – fredley 2011-01-12 11:51:56

回答

272

使用imgview.setScaleType(ScaleType.FIT_XY);

+1

谢谢,完美作品 – Johan 2011-01-12 12:04:49

+24

我知道这是你想要的,但对于你关心宽高比的图像来说,这将会延伸出来。 – 2011-11-15 01:39:57

+0

在ScrollView中为ImageView创造奇迹。即使这方面保持正确。 – JNissi 2012-10-17 04:52:19

109

给你布局的xml文件android:scaleType="fitXY"
P.S:这适用于当图像被设定为android:src="..."而不是android:background="..."为背景的默认设置为伸展,适合给View。

-9

尝试使用:

imageview.setFitToScreen(true); 
imageview.setScaleType(ScaleType.FIT_CENTER); 

这会适合你的ImageView与正确比例的屏幕。

14

使用本:

ImageView.setAdjustViewBounds(true); 
5

接受的答案是完美的,但是如果你想从XML做到这一点,你可以使用android:scaleType="fitXY"

0

我已经使用XML文件中该android:scaleType="fitXY"代码。

0

只是改变你的ImageView的高度和宽度,为wrap_content和使用

exampleImage.setScaleType(ImageView.ScaleType.FIT_XY);

在您的代码中。

7

如果你使用android:scaleType="fitXY"那么如果使用WRAP_CONTENT它不会延伸到你所需要的

<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"/>