轉(zhuǎn)自:https://www.cnblogs.com/lgfrank/p/8341898.html? ?個人覺得該篇講的最詳細(xì),插圖設(shè)置清晰明了闯割,方便以后查詢
ImageView的scaleType的屬性有好幾種彻消,分別是matrix(默認(rèn))、center宙拉、centerCrop宾尚、centerInside、fitCenter谢澈、fitEnd煌贴、fitStart、fitXY
android:scaleType="center"
保持原圖的大小锥忿,顯示在ImageView的中心牛郑。當(dāng)原圖的size大于ImageView的size,超過部分裁剪處理敬鬓。
android:scaleType="centerCrop"
以填滿整個ImageView為目的淹朋,將原圖的中心對準(zhǔn)ImageView的中心,等比例放大原圖钉答,直到填滿ImageView為止(指的是ImageView的寬和高都要填滿)础芍,原圖超過ImageView的部分作裁剪處理。
android:scaleType="centerInside"
以原圖完全顯示為目的数尿,將圖片的內(nèi)容完整居中顯示仑性,通過按比例縮小原圖的size寬(高)等于或小于ImageView的寬(高)。如果原圖的size本身就小于ImageView的size右蹦,則原圖的size不作任何處理诊杆,居中顯示在ImageView歼捐。
android:scaleType="matrix"
不改變原圖的大小,從ImageView的左上角開始繪制原圖晨汹,原圖超過ImageView的部分作裁剪處理豹储。
android:scaleType="fitCenter"
把原圖按比例擴(kuò)大或縮小到ImageView的ImageView的高度,居中顯示
android:scaleType="fitEnd"
把原圖按比例擴(kuò)大(縮小)到ImageView的高度宰缤,顯示在ImageView的下部分位置
android:scaleType="fitStart"
把原圖按比例擴(kuò)大(縮小)到ImageView的高度颂翼,顯示在ImageView的上部分位置
android:scaleType="fitXY"
把原圖按照指定的大小在View中顯示,拉伸顯示圖片慨灭,不保持原比例朦乏,填滿ImageView.
下面附上效果圖:
原圖為Pocoyo的頭像,上圖為原圖的size大于ImageView的size氧骤,下圖為原圖的size小于ImageView的size
Tip:很多人都覺得fitCenter和centerInside沒有區(qū)別呻疹,根據(jù)上面的效果圖來分析,其實(shí)是有區(qū)別的筹陵。fitCenter是將原圖等比例放大或縮小刽锤,使原圖的高度等于ImageView的高度,并居中顯示朦佩,而centerInside在原圖的原本size大于ImageView的size時并思,則縮小原圖,效果同fitCenter语稠;在原圖的原本size小于ImageView的size時宋彼,則不進(jìn)行任何size處理,居中顯示仙畦,效果同center输涕。
ImageView的android:adjustViewBounds屬性為是否保持原圖的長寬比,單獨(dú)設(shè)置不起作用慨畸,需要配合maxWidth或maxHeight一起使用莱坎。