Android ImageView的scaleType(圖片比例類型)屬性與adjustViewBounds(調整視圖邊界)屬性


Android ImageView的scaleType屬性與adjustViewBounds屬性
        實用性很強的屬性經典總結
 
   一、首先:ImageView的scaleType的屬性有好幾種,分別是matrix(默認)、center、centerCrop、centerInside、fitCenter、fitEnd、fitStart、fitXY
 
(1),android:scaleType="center"
保持原圖的大小,顯示在ImageView的中心。當原圖的size大於ImageView的size,超過部分裁剪處理。
 
(2),android:scaleType="centerCrop"
以填滿整個ImageView為目的,將原圖的中心對准ImageView的中心,等比例放大原圖,直到填滿ImageView為止(指的是ImageView的寬和高都要填滿),原圖超過ImageView的部分作裁剪處理。
 
(3),android:scaleType="centerInside"
以原圖完全顯示為目的,將圖片的內容完整居中顯示,通過按比例縮小原圖的size寬(高)等於或小於ImageView的寬(高)。如果原圖的size本身就小於ImageView的size,則原圖的size不作任何處理,居中顯示在ImageView。
 
(4),android:scaleType="matrix"
不改變原圖的大小,從ImageView的左上角開始繪制原圖,原圖超過ImageView的部分作裁剪處理。
 
(5),android:scaleType="fitCenter"
把原圖按比例擴大或縮小到ImageView的ImageView的高度,居中顯示
 
(6),android:scaleType="fitEnd"
把原圖按比例擴大(縮小)到ImageView的高度,顯示在ImageView的下部分位置
 
(7),android:scaleType="fitStart"
把原圖按比例擴大(縮小)到ImageView的高度,顯示在ImageView的上部分位置                              
(8),android:scaleType="fitXY"
把原圖按照指定的大小在View中顯示,拉伸顯示圖片,不保持原比例,填滿ImageView.            
二、總結:很多人都覺得fitCenter和centerInside沒有區別,根據上面的效果圖來分析,其實是有區別的。fitCenter是將原圖等比例放大或縮小,使原圖的高度等於ImageView的高度,並居中顯示,而centerInside在原圖的原本size大於ImageView的size時,則縮小原圖,效果同fitCenter;在原圖的原本size小於ImageView的size時,則不進行任何size處理,居中顯示,效果同center。
三、最后:ImageView的android:adjustViewBounds屬性為是否保持原圖的長寬比,單獨設置不起作用,需要配合maxWidth或maxHeight一起使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM