2011-01-12 73 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"/>