Android ImageView的scaleType屬性與adjustViewBounds屬性

ImageView的scaleType的屬性有好幾種,分別是matrix(默認)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXYhtml

android:scaleType="center"
android

保持原圖的大小,顯示在ImageView的中心。當原圖的size大於ImageView的size,超過部分裁剪處理。
ide

android:scaleType="centerCrop"url

以填滿整個ImageView爲目的,將原圖的中心對準ImageView的中心,等比例放大原圖,直到填滿ImageView爲止(指的是ImageView的寬和高都要填滿),原圖超過ImageView的部分做裁剪處理。
spa

android:scaleType="centerInside"orm

以原圖徹底顯示爲目的,將圖片的內容完整居中顯示,經過按比例縮小原圖的size寬(高)等於或小於ImageView的寬(高)。若是原圖的size自己就小於ImageView的size,則原圖的size不做任何處理,居中顯示在ImageView。
htm

android:scaleType="matrix"blog

不改變原圖的大小,從ImageView的左上角開始繪製原圖,原圖超過ImageView的部分做裁剪處理。
圖片

android:scaleType="fitCenter"ip

把原圖按比例擴大或縮小到ImageView的ImageView的高度,居中顯示

android:scaleType="fitEnd"

把原圖按比例擴大(縮小)到ImageView的高度,顯示在ImageView的下部分位置

android:scaleType="fitStart"

把原圖按比例擴大(縮小)到ImageView的高度,顯示在ImageView的上部分位置

android:scaleType="fitXY"

把原圖按照指定的大小在View中顯示,拉伸顯示圖片,不保持原比例,填滿ImageView.

下面附上效果圖:

原圖爲Pocoyo的頭像,上圖爲原圖的size大於ImageView的size,下圖爲原圖的size小於ImageView的size

Android <wbr>ImageView的scaleType屬性與adjustViewBounds屬性[轉]

Tip:不少人都以爲fitCenter和centerInside沒有區別,根據上面的效果圖來分析,實際上是有區別的。fitCenter是將原圖等比例放大或縮小,使原圖的高度等於ImageView的高度,並居中顯示,而centerInside在原圖的本來size大於ImageView的size時,則縮小原圖,效果同fitCenter;在原圖的本來size小於ImageView的size時,則不進行任何size處理,居中顯示,效果同center。


 

ImageView的android:adjustViewBounds屬性爲是否保持原圖的長寬比,單獨設置不起做用,須要配合maxWidth或maxHeight一塊兒使用(該句話的後半句我尚未去驗證,但我用的時候沒有與maxWidth、MaxHeight一塊兒使用)。

相關文章
相關標籤/搜索