官方介紹
下面舉個(gè)例子對(duì)以上幾點(diǎn)屬性逐條說(shuō)明
準(zhǔn)備
準(zhǔn)備一張400x300的圖片,命名為:test_400x300痢掠,寫(xiě)一個(gè)簡(jiǎn)單的布局驱犹,觀察右邊preview預(yù)覽圖的變化。
從圖中我們可以看到志群,此控件的長(zhǎng)寬布局都用in單位着绷,之所以長(zhǎng)寬都用in單位锌云,是為了框定一個(gè)不受屏幕分辨率的區(qū)域。這樣一張400x300px的圖片放到不同的drawable目錄下后桑涎,在屏幕上就會(huì)占用不同的英寸大小,此時(shí)scaleType不同而帶來(lái)的變化更容易觀察娃胆。
此方面知識(shí)如果還不清楚可以參考本人的另一篇博文:《Android布局中的尺寸單位介紹》
FIT_CENTER
fitCenter是ImageView控件的默認(rèn)ScaleType。
它表示把一個(gè)圖片縮放到當(dāng)前View大小里烦,小于的圖片會(huì)放大禁谦,大圖會(huì)縮小。事例圖片見(jiàn)上文”準(zhǔn)備“中的圖州泊。
***CENTER_INSIDE ***
把圖片縮小到ImageView區(qū)域中,并居中顯示力喷。它與FIT_CENTER的區(qū)別在于演训,如果是小于該控件的圖,則不會(huì)放大样悟,而是維持圖的大小直接居中顯示。
android:scaleType="centerInside"
test_400x300.png在drawable-hdpi中
CENTER
直接把圖片居中顯示,不進(jìn)行任何縮放動(dòng)作礁苗,在控件區(qū)域內(nèi)的則顯示,不在就不顯示试伙。當(dāng)圖片小于控件時(shí),與CENTER_INSIDE作用一樣潘靖。
android:scaleType="center"
test_400x300.png在drawable-mdpi中
注:因?yàn)閙dpi是指160dpi蚤蔓,所以用400/160大于2in,所以寬度多出的部分就沒(méi)有顯示出來(lái)
CENTER_CROP
放大或縮小圖片直到圖片的中間區(qū)域恰好可以把控件區(qū)域填滿(mǎn)秀又。
android:scaleType="centerCrop"
test_400x300.png在drawable-mdpi或drawable-hdpi中
FIT_END
放大或縮小圖片到正好可以放入到空間中的大小吐辙,與FIT_CENTER的不同點(diǎn)在于,把圖片居下(長(zhǎng)大于寬是)或居右(框大于長(zhǎng)時(shí))顯示昏苏。
android:scaleType="fitEnd"
test_400x300.png在drawable-mdpi或drawable-hdpi中
FIT_START
與FIT_END基本相同贤惯,只是圖片會(huì)居左或上顯示。
FIT_XY
不固定長(zhǎng)寬比例的縮小或放大圖片壶熏,直到用圖片把控件區(qū)域全部填滿(mǎn)。
android:scaleType="fitXY"
test_400x300.png在drawable-mdpi或drawable-hdpi中
MATRIX
用矩陣的方式繪制棒假,從控件的左上角開(kāi)始帽哑,不縮放圖片,與CENTER相似妻枕,不同點(diǎn)在于把圖片的左上角對(duì)上控件的左上角顯示,超出控件的部分不顯示屡谐。
android:scaleType="matrix"
test_400x300.png在drawable-hdpi中
總結(jié)
以上愕掏,除fitXY長(zhǎng)寬比例不固定外,其他5中scale方法長(zhǎng)寬比例都固定饵撑。
作者簡(jiǎn)介
彭濤(@彭濤me) 致力于讓技術(shù)變得易懂且有趣
個(gè)人博客:http://pengtao.me, GitHub地址:https://github.com/CPPAlien