ImageView 的 ScaleType 屬性 有8種類型幻锁。
fitXY
fitCenter 默認
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)致圖片拉伸籍救。
不關(guān)心圖片大小习绢,圖片完全在 ImageView 內(nèi)部,不裁剪蝙昙,拉伸闪萄。
二、fitCenter
ImageView 大小固定耸黑,圖片適配 ImageView桃煎,圖片按照 ImageView 大小縮放或擴大篮幢,直到有一者或全和 ImageView 寬高相等大刊,圖片完全在 ImageView 控件內(nèi)部,居中。
圖片寬300px缺菌,高200px葫辐,比例是1.5:1。
第一種伴郁,ImageView 寬高比 2:1耿战,縮放,直到寬高都<= ImageView 寬高焊傅,縮放過程中剂陡,有一個先相等,另一個仍然大于狐胎,(按照最大比例縮放)鸭栖。圖片高相等時,寬并不能占滿60dp握巢,然后居中顯示晕鹊,(和centerInside一致)。
第二種暴浦,ImageView 寬高比 4:3溅话,擴大。直到寬高有一項等于 ImageView 寬高歌焦,(按照最接近的比例擴大值)飞几。圖片的寬相等時,高并不能占滿150dp独撇,然后居中顯示循狰。
第三種,ImageView 寬高比 20:3券勺。圖片高> ImageView 高绪钥,寬高縮放。圖片高縮放至==ImageView時关炼,圖片寬并不能占滿200dp程腹,然后居中顯示,(centerInside一致)儒拂。
圖片按照 ImageView 的寬高 scale 操作寸潦,完全在ImageView內(nèi)部,有一項緊貼ImageView社痛,不裁剪见转,不會拉伸。
三蒜哀、fitEnd和fitStart
和 fitCenter 一樣斩箫,區(qū)別是,圖片 scale 操作到緊貼 ImageView 內(nèi)部后,顯示位置不居中乘客。
四狐血、center
ImageView 大小固定,按照圖片的寬高像素顯示易核,不需要適配匈织,如果 ImageView 顯示不下,截取牡直,將圖片和 ImageView 區(qū)域的交集顯示出來缀匕。
圖片寬300px,高200px碰逸,比例是1.5:1弦追。
第一種,圖片寬高> ImageView寬高花竞,顯示截取后的圖片劲件。
第二種,圖片寬高< ImageView寬高约急,完全顯示零远,居中顯示。
第三種厌蔽,圖片寬< ImageView寬牵辣,圖片寬> ImageView寬,截取奴饮,居中顯示纬向。
圖片和 ImageView 區(qū)域進行 intersect 操作,顯示他們的交集戴卜,居中顯示逾条。可能會裁剪投剥,不拉伸师脂。
五、centerCrop
ImageView 大小固定江锨,圖片適配 ImageView吃警,圖片進行 scale 操作,直到寬高一方或全和 ImageView 寬高相等啄育,圖片寬高需要全部大于等于 ImageView 寬高酌心。
圖片寬300px,高200px挑豌,比例是1.5:1安券。
第一種墩崩,ImageView 寬高比2:1。圖片寬高> ImageView 寬高完疫。縮放债蓝,直到有一項==ImageView對應(yīng)項壳鹤。縮放過程中必然有一個先相等饰迹,另一個仍然大于芳誓,(按照最小比例縮放)。圖片寬==ImageView寬時啊鸭,圖片高仍> ImageView 高锹淌,縮放后,2:4/3赠制,然后赂摆,裁剪高,顯示钟些。
第二種烟号,ImageView 寬高比4:3。圖片寬高< ImageView 寬高政恍。擴大汪拥。直到寬高都>=ImageView寬高,(按照最大的比例擴大值)篙耗。
當(dāng)圖片高擴大至==ImageView高時迫筑,圖片寬> ImageView寬,放大后宗弯,比例是9/2:3脯燃,寬超出,裁剪寬度蒙保。顯示曲伊。
第三種,ImageView 寬高比20:3追他。圖片高> ImageView 高坟募,圖片寬< ImageView 寬,放大寬邑狸,同比例放大高懈糯。不管怎樣圖片寬高最后都要>= ImageView 寬高,且有一個相等单雾,擴大后赚哗,20:40/3她紫,高度遠超過30dp,裁剪高屿储,顯示贿讹。
根據(jù)圖片寬高適配 ImageView,scale 的倍數(shù)要保證圖片寬高大于 ImageView 寬高够掠,并且有一項緊貼 ImageView民褂,裁剪,不拉伸疯潭。
六赊堪、centerInside
ImageView 大小固定,圖片適配 ImageView竖哩,圖片按照 ImageView 大小進行 scale 縮放操作哭廉,無擴大操作。圖片完全在 ImageView 內(nèi)部相叁。位于 ImageView 中間遵绰。
圖片寬300px,高200px增淹,比例是1.5:1街立。
第一種,ImageView 寬高比2:1埠通。圖片寬高> ImageView 寬高赎离。縮放端辱,直到全部在 ImageView 內(nèi)部梁剔。縮放過程中必然有一個先相等舞蔽,另一個仍然大于荣病,繼續(xù)縮放,(按照最大比例縮放)渗柿。圖片高== ImageView 高時个盆,圖片寬已經(jīng)<ImageView寬,縮放后朵栖,1.5:1颊亮,然后,居中顯示陨溅。
第二種终惑,圖片寬高< ImageView 寬高。直接居中顯示门扇。
第三種雹有,ImageView 寬高比20:3偿渡。圖片高> ImageView 高,圖片寬< ImageView 寬霸奕,圖片縮放高溜宽,直到圖片的高== ImageView 高,寬縮放同等比例质帅,然后居中顯示
根據(jù)圖片寬高適配 ImageView适揉,scale操作要保證圖片寬高都不比 ImageView 寬高大,圖片寬高小于 ImageView 保持不變临梗,縮放時有一項緊貼 ImageView涡扼,不裁剪稼跳,不拉伸盟庞。
七、matrix
從 ImageView 左上角開始直接顯示汤善,顯示不全時什猖,裁剪。
任重而道遠