2014-03-28 83 views
1

我有一個形象在活動中使用的背景:的Android ImageView的scaleType

enter image description here

我想這個圖像通過其高度以適應屏幕。 這意味着,對於寬屏幕的智能手機,我想我的形象被高度適應和中心:

enter image description here

和方形屏幕的智能手機,我想我的形象被削減:

enter image description here

我使用ImageView作爲圖像。我應該用什麼scaleType?看第二個數字,我會說使用android:scaleType="centerInside"。但看第三個,我會說使用android:scaleType="centerCrop"。什麼是正確的?

回答

1

您對不同scaleType的評價是正確的。如果要讓整個圖像可見,請使用"centerInside",或者如果要填充整個視圖,請使用centerCrop

要混合使用兩者,您可以在onCreate()方法中設置scaleType。根據您想要的行爲,您可以檢查屏幕的方向或大小並設置適當的選項。

imageView.setScaleType(ScaleType.CENTER_INSIDE); // or ScaleType.CENTER_CROP

1

你可以有兩種佈局,每一個你的配置。然後,您可以在活動的onCreate()調用中加載適當的一個。

0

使用centerCrop,因爲centerInside不會在視圖中縮放圖像,您必須創建適當高度的圖像才能實現廣泛屏蔽的智能手機背景填充。或者,您可以使用fitCenter通過填充所有背景的兩個軸均勻縮放圖像。

+0

這實際上是不正確的。 'centerInside'會縮放以適應圖像,但不會超過視圖的尺寸。 「中心」不會縮放,只是將圖像集中在視圖中。圖片。你可以在這裏閱讀不同類型的完整描述:http://developer.android.com/reference/android/widget/ImageView.ScaleType.html – dharms

+0

你是對的,但任務不是顯示背景圖像處女和未失真。 –

1

當您將圖像的一面貼合到背景時,您將遇到兩個問題,第一個問題是屏幕寬度大於圖像寬度或屏幕高度大於圖像高度。因此您將擁有空白空間。

如果您不想面對分辨率問題,並且想要將圖像兩側都適合背景,則需要使用centerCROP。但正如我所說的,如果圖像的一側不足以適應背景,圖像變得更大,直到它被填滿。

相關問題