ImageView ScaleType 模式


ImageView 的 ScaleType 屬性 有8種類型。

fitXY
fitCenter 默認(rèn)
fitEnd
fitStart
center
centerCrop
centerInside
matrix

每種類型代表圖片在 ImageView 的一種展示方式。

原圖

原圖,寬300px,高200px。
ImageView,設(shè)置三組固定大小,寬x高:60dp和30dp,200dp和150dp,200dp和30dp。

一、fitXY

ImageView 大小固定,圖片適配 ImageView,圖片占滿視圖,當(dāng) ImageView 和圖片寬高比不同時,導(dǎo)致圖片拉伸。

fitXY

不關(guān)心圖片大小,圖片完全在 ImageView 內(nèi)部,不裁剪,拉伸。

二、fitCenter

ImageView 大小固定,圖片適配 ImageView,圖片按照 ImageView 大小縮放或擴(kuò)大,直到有一者或全和 ImageView 寬高相等,圖片完全在 ImageView 控件內(nèi)部,居中。

fitCenter

圖片寬300px,高200px,比例是1.5:1。
第一種,ImageView 寬高比 2:1,縮放,直到寬高都<= ImageView 寬高,縮放過程中,有一個先相等,另一個仍然大于,(按照最大比例縮放)。圖片高相等時,寬并不能占滿60dp,然后居中顯示,(和centerInside一致)。
第二種,ImageView 寬高比 4:3,擴(kuò)大。直到寬高有一項等于 ImageView 寬高,(按照最接近的比例擴(kuò)大值)。圖片的寬相等時,高并不能占滿150dp,然后居中顯示。
第三種,ImageView 寬高比 20:3。圖片高> ImageView 高,寬高縮放。圖片高縮放至==ImageView時,圖片寬并不能占滿200dp,然后居中顯示,(centerInside一致)。

圖片按照 ImageView 的寬高 scale 操作,完全在ImageView內(nèi)部,有一項緊貼ImageView,不裁剪,不會拉伸。

三、fitEnd和fitStart

和 fitCenter 一樣,區(qū)別是,圖片 scale 操作到緊貼 ImageView 內(nèi)部后,顯示位置不居中。

fitStart和fitEnd

四、center

ImageView 大小固定,按照圖片的寬高像素顯示,不需要適配,如果 ImageView 顯示不下,截取,將圖片和 ImageView 區(qū)域的交集顯示出來。

center

圖片寬300px,高200px,比例是1.5:1。
第一種,圖片寬高> ImageView寬高,顯示截取后的圖片。
第二種,圖片寬高< ImageView寬高,完全顯示,居中顯示。
第三種,圖片寬< ImageView寬,圖片寬> ImageView寬,截取,居中顯示。

圖片和 ImageView 區(qū)域進(jìn)行 intersect 操作,顯示他們的交集,居中顯示??赡軙眉簦焕?。

五、centerCrop

ImageView 大小固定,圖片適配 ImageView,圖片進(jìn)行 scale 操作,直到寬高一方或全和 ImageView 寬高相等,圖片寬高需要全部大于等于 ImageView 寬高。

centerCrop

圖片寬300px,高200px,比例是1.5:1。
第一種,ImageView 寬高比2:1。圖片寬高> ImageView 寬高。縮放,直到有一項==ImageView對應(yīng)項??s放過程中必然有一個先相等,另一個仍然大于,(按照最小比例縮放)。圖片寬==ImageView寬時,圖片高仍> ImageView 高,縮放后,2:4/3,然后,裁剪高,顯示。
第二種,ImageView 寬高比4:3。圖片寬高< ImageView 寬高。擴(kuò)大。直到寬高都>=ImageView寬高,(按照最大的比例擴(kuò)大值)。
當(dāng)圖片高擴(kuò)大至==ImageView高時,圖片寬> ImageView寬,放大后,比例是9/2:3,寬超出,裁剪寬度。顯示。
第三種,ImageView 寬高比20:3。圖片高> ImageView 高,圖片寬< ImageView 寬,放大寬,同比例放大高。不管怎樣圖片寬高最后都要>= ImageView 寬高,且有一個相等,擴(kuò)大后,20:40/3,高度遠(yuǎn)超過30dp,裁剪高,顯示。

根據(jù)圖片寬高適配 ImageView,scale 的倍數(shù)要保證圖片寬高大于 ImageView 寬高,并且有一項緊貼 ImageView,裁剪,不拉伸。

六、centerInside

ImageView 大小固定,圖片適配 ImageView,圖片按照 ImageView 大小進(jìn)行 scale 縮放操作,無擴(kuò)大操作。圖片完全在 ImageView 內(nèi)部。位于 ImageView 中間。

centerInside

圖片寬300px,高200px,比例是1.5:1。
第一種,ImageView 寬高比2:1。圖片寬高> ImageView 寬高。縮放,直到全部在 ImageView 內(nèi)部??s放過程中必然有一個先相等,另一個仍然大于,繼續(xù)縮放,(按照最大比例縮放)。圖片高== ImageView 高時,圖片寬已經(jīng)<ImageView寬,縮放后,1.5:1,然后,居中顯示。
第二種,圖片寬高< ImageView 寬高。直接居中顯示。
第三種,ImageView 寬高比20:3。圖片高> ImageView 高,圖片寬< ImageView 寬,圖片縮放高,直到圖片的高== ImageView 高,寬縮放同等比例,然后居中顯示

根據(jù)圖片寬高適配 ImageView,scale操作要保證圖片寬高都不比 ImageView 寬高大,圖片寬高小于 ImageView 保持不變,縮放時有一項緊貼 ImageView,不裁剪,不拉伸。

七、matrix

從 ImageView 左上角開始直接顯示,顯示不全時,裁剪。

matrix

任重而道遠(yuǎn)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容