在網上查了好多資料,大致都雷同,大家都是互相抄襲的,看着很費勁,不好理解,自己總結一下,留着需要看的話來查找。
代碼中的例子如下:
<ImageView android:id="@+id/iv_bit_1" android:layout_width="@dimen/passcode_width" android:layout_height="@dimen/passcode_height" android:scaleType="fitXY" /> <ImageView android:id="@+id/iv_bit_2" android:layout_width="@dimen/passcode_width" android:layout_height="@dimen/passcode_height" android:scaleType="fitXY" /> <ImageView android:id="@+id/iv_bit_3" android:layout_width="@dimen/passcode_width" android:layout_height="@dimen/passcode_height" android:scaleType="fitXY" /> <ImageView android:id="@+id/iv_bit_4" android:layout_width="@dimen/passcode_width" android:layout_height="@dimen/passcode_height" android:scaleType="fitXY" /> <ImageView android:id="@+id/iv_bit_5" android:layout_width="@dimen/passcode_width" android:layout_height="@dimen/passcode_height" android:scaleType="fitXY" /> <ImageView android:id="@+id/iv_bit_6" android:layout_width="@dimen/passcode_width" android:layout_height="@dimen/passcode_height" android:scaleType="fitXY" />
通過API的查詢得知,
ImageView.ScaleType的結構為:
繼承關系
public static final enum ImageView.ScaleType extends Enum<E extends Enum<E>>
java.lang.Object
java.lang.Enum<E extends java.lang.Enum<E>>
android.widget.ImageView.ScaleType
類概述
將圖片邊界縮放,以適應視圖邊界時的可選項。
常量
public static final ImageView.ScaleType CENTER
在視圖中使圖像居中,不執行縮放。 在 XML 中可以使用的語法: android:scaleType="center"。
public static final ImageView.ScaleType CENTER_CROP
均衡的縮放圖像(保持圖像原始比例),使圖片的兩個坐標(寬、高)都大於等於 相應的視圖坐標(負的內邊距)。圖像則位於視圖的中央。 在 XML 中可以使用的語法:android:scaleType="centerCrop"。
public static final ImageView.ScaleType CENTER_INSIDE
均衡的縮放圖像(保持圖像原始比例),使圖片的兩個坐標(寬、高)都小於等於 相應的視圖坐標(負的內邊距)。圖像則位於視圖的中央。 在 XML 中可以使用的語法:android:scaleType="centerInside"。
public static final ImageView.ScaleType FIT_CENTER
使用 CENTER 方式縮放圖像。 在 XML 中可以使用的語法: android:scaleType="fitCenter"。
public static final ImageView.ScaleType FIT_END
使用 END 方式縮放圖像。 在 XML 中可以使用的語法: android:scaleType="fitEnd"。
public static final ImageView.ScaleType FIT_START
使用 START 方式縮放圖像。 在 XML 中可以使用的語法:android:scaleType="fitStart"。
public static final ImageView.ScaleType FIT_XY
使用 FILL 方式縮放圖像。 在 XML 中可以使用的語法: android:scaleType="fitXY"。
public static final ImageView.ScaleType MATRIX
繪制時,使用圖像矩陣方式縮放。圖像矩陣可以通過 setImageMatrix(Matrix) 設置。在 XML 中可以使用的語法: android:scaleType="matrix"。
此間通過閱讀網友的一篇日志,對此也有更詳細的解釋,大家可以參考:
http://blog.sina.com.cn/s/blog_407abb0d0100mao1.html
用代碼展示着幾個屬性的效果,效果截圖:
主界面:
CENTER效果:
CENTER_CROP效果:
CENTER_INSIDE效果:
FIT_CENTER效果:
FIT_START效果:
FIT_END效果:
FIT_XY效果:
MATRIX效果:
結果分析:
我選取的原始圖片明顯標志如下:左上角有蝴蝶、花朵,右下角為一個蝗蟲,且圖片像素大於 320×480,各種類型的差異通過查看圖片的明顯標志即可窺見一斑。比如FIT_START,填充於屏幕上方,並等比例縮放;相反,FIT_END置於屏幕下方,而FIT_CENTER則在中間。CENTER_CROP裁剪了圖片的中間部分填充屏幕。其它類型可自行查看分析。

![clip_image001[4] clip_image001[4]](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNDUzMTYwLzIwMTMwMi8yNzA5NDI0My04M2E3NjBkZDI2YmI0Mjc0YjJiMjFkNmY4OWIyYjMzOC5qcGc=.png)
![clip_image002[4] clip_image002[4]](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNDUzMTYwLzIwMTMwMi8yNzA5NDI0NC1mOTA1MmEwNmU1NTY0YjlmOGZkMmVlNDk1MGFhNzBhYS5qcGc=.png)
![clip_image003[4] clip_image003[4]](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNDUzMTYwLzIwMTMwMi8yNzA5NDI0NS1mZjY0MGNiOTlhYmI0N2RhYTg0M2Y0OTc0MTYzYWE5ZC5qcGc=.png)
![clip_image004[4] clip_image004[4]](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNDUzMTYwLzIwMTMwMi8yNzA5NDI0Ni1kMTgwMWM2NTM2YTQ0ZWRiOWEwOWY2YjY2NDkzN2IwMy5qcGc=.png)
![clip_image005[4] clip_image005[4]](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNDUzMTYwLzIwMTMwMi8yNzA5NDI0Ny02NDVhOGE3NTBlNTU0MTQ1ODRkZThkZjM5YmNhMDFjZS5qcGc=.png)
![clip_image006[4] clip_image006[4]](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNDUzMTYwLzIwMTMwMi8yNzA5NDI0OC05MzdlMjdjYzI1NjI0M2VmYmI4Y2FlNjg4MDAwNWU5NS5qcGc=.png)
![clip_image007[4] clip_image007[4]](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNDUzMTYwLzIwMTMwMi8yNzA5NDI0OS04ODM4MTczOGE5ZDE0YjZlYWFjYTMxNWRkOWI5ODYyZi5qcGc=.png)
![clip_image008[4] clip_image008[4]](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNDUzMTYwLzIwMTMwMi8yNzA5NDI1MC03ODc0NDFjMjQ2MDg0MWNhYjI4YmFjOTc0ZDMwOGI0Mi5qcGc=.png)
![clip_image009[4] clip_image009[4]](/image/aHR0cHM6Ly9pbWFnZXMwLmNuYmxvZ3MuY29tL2Jsb2cvNDUzMTYwLzIwMTMwMi8yNzA5NDI1MS1iNTBmMTEyOTc3NDc0Yzk5YmJiOTU3MjIzZWU3ZjYyYS5qcGc=.png)