Android 圖片ImageView.ScaleType詳解

ImageView控件中有個屬性叫scaleType,scaleType用來控制在ImageView上顯示的圖片樣式。

ImageView提供了以下方法選擇scaleType的樣式

public void setScaleType (ImageView.ScaleType scaleType) 

相關的xml屬性:

android:scaleType

接下來我們使用圖片來演示各個樣式的顯示效果

原圖片:(1920 * 1200)


1.CENTER (android:scaleType="center")

按圖片原來的大小和比例居中顯示,當圖片的寬/高超過了View設置的寬高時,則截取圖片的居中部分顯示。當圖片的寬/高沒超過View設置的寬/高時則不截取。


2.CENTER_CROP (android:scaleType="centerCrop")

讓圖片的寬/高等於View設置的寬/高,保持圖片的比例並居中顯示。填滿View設置的寬和高


3.CENTER_INSIDE (android:scaleType="cneterInside")

將圖片按比例完全顯示出來,並且居中,使得圖片的寬/高等於或小於View設置的寬/高。如果原圖的寬/高本身就小於View設置的寬/高,則原圖的寬高不作任何處理。


4.FIT_CENTER (android:scaleType="fitCenter")

基本和CENTER_INSID一樣,不同的是,CENTER_INSIDE對於原圖比View小的圖片不做擴大處理,而FIT_CENTER則會做擴大處理以填充寬/高


5.FIT_END (android:scaleType="fitEnd")

和FIT_CENTER處理圖片的方式一致,顯示的位置在View的底部或者右邊。


6.FIT_START  (android:scaleType="fitStart")

和FIT_CENTER處理圖片的方式一致,顯示的位置在View的頂部或者左邊。


7.FIT_XY (android:scaleType="fitXY")

把圖片顯示的寬高等於View設置的寬高,填滿View控件,不保持圖片的比例。



8.MATRIX (android:scaleType="matrix")

對圖片不進行處理,顯示的時候從圖片的左上角進行顯示,超過View寬/高的部分做剪裁處理。


在處理listView或者gridView中顯示的圖片時,圖片大小都應該要一樣大才好看,建議使用centerCrop或者fitXY,需要保持圖片比例就使用centerCrop,不需要則使用fitXY。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章