ImageView 的 android:scaleType 屬性的含義如下:
控制如何調(diào)整圖片大小和圖片位移以匹配 ImageView 的大?。磳捄透撸?/em>
它有以下幾個(gè)值:
| 屬性值 | 代碼值 |
|---|---|
center |
ImageView.ScaleType.CENTER |
centerCrop |
ImageView.ScaleType.CENTER_CROP |
centerInside |
ImageView.ScaleType.CENTER_INSIDE |
fitCenter |
ImageView.ScaleType.FIT_CENTER |
fitStart |
ImageView.ScaleType.FIT_START |
fitEnd |
ImageView.ScaleType.FIT_END |
fitXY |
ImageView.ScaleType.FIT_XY |
matrix |
ImageView.ScaleType.MATRIX |
默認(rèn)值為:fitCenter。
1. 精解
以下使用兩個(gè)寬高均為:400x400px 的 ImageView 控件來分別展示寬高為:125x127px 和 678x674px 的圖片。
ImageView 控件的背景色均為紅色,他們的父視圖背景色為灰色。
1.1 center
圖片保持原始寬高。
將圖片居中展示在 ImageView 里,超出 ImageView 寬高的部分將被截去。

1.2 centerCrop
等比例縮放圖片使得圖片的寬高都分別 >= ImageView 的寬高(減去 padding),接著截取縮放后的圖片的中間部分。

1.3 centerInside
圖片居中展示在 ImageView 里,若圖片大小 > ImageView 大小,則將圖片等比列縮小,使得整張圖片都能完全展示在
ImageView 里,也就是說圖片水平和垂直方向至少有一方向上的邊與 ImageView 的邊對(duì)齊。

1.4 fitCenter (默認(rèn)值)
等比列縮放圖片使得圖片水平和垂直方向至少有一方向上的邊與 ImageView 的邊對(duì)齊,最后將圖片居中顯示在 ImageView 里。

1.5 fitStart
與 fitCenter 縮放規(guī)則相同,最后使圖片的上邊和左邊都分別與 ImageView 的上邊和左邊對(duì)齊。

1.6 fitEnd
與 fitCenter 縮放規(guī)則相同,最后使圖片的下邊和右邊都分別與 ImageView 的下邊和右邊對(duì)齊。

1.7 fitXY
不等比例縮放圖片,使得圖片的四邊與 ImageView 的四邊都對(duì)齊。

1.8 matrix
矩陣被用于在圖形繪制時(shí)操作畫布。對(duì)于 ImageView 而言,矩陣可以用于位移圖片、翻轉(zhuǎn)圖片、旋轉(zhuǎn)圖片等,尤其是涉及用戶手勢(shì)相關(guān)的操作。
待續(xù)

2. 總結(jié)
- 當(dāng)圖片比
ImageView小時(shí),center和centerInside的展示效果是相同的。 - 當(dāng)圖片比
ImageView大時(shí),centerInside和fitCenter的展示效果是相同的。 -
fitCenter、fitStart和fitEnd這三個(gè)的縮放規(guī)則是一樣的,區(qū)別在于縮放后圖片位移不同。 - 當(dāng)希望匹配圖片的寬高比,尤其是在使用
fitXY這一屬性值時(shí),可以設(shè)置adjustViewBounds=true。