ImageView 屬性adjustViewBounds

(1) 那么adjustViewBounds="ture"是什么意思呢?

當adjustViewBounds="ture"的時候,Adjust the ImageView's bounds to preserve the aspect ration of its drawable。什么意思呢?意思是說通過調(diào)整ImageView的界限來保持圖片的寬高比例。這里的比例是指圖片(真正需要加載的圖片)寬高的比例,而非ImageView比例,簡單來說adjustViewBounds="ture"的時候,圖片的寬高比有可能發(fā)生變化。

(2) 那么接下來我們分析一下,如果設置adjustViewBounds="ture",圖片寬高比到底將會什么變化?

在布局文件XML中設置adjustViewBounds="ture"的時候,會將這個ImageView的scaleType屬性設置為fitCenter,但是如果同時在XML文件中設置android:scaleType,則android:scaleType的優(yōu)先級會更高,adjustViewBounds="ture"中對scaleType屬性設置將會失效。這種情況,只有在Java代碼中設置setAdjustViewBounds(true)的時候,才會生效。

(一)當ImageView的layout_width和layout _height都是固定值的時候。adjustViewBounds="ture"是沒有效果的,因為圖片會按照ImageView的比例被直接填充到ImageView控件中。

(二)當ImageView的layout_ width和layout_ height其中有一個屬性固定值的時候。圖片的寬/高將會與ImageView的layout_ width/layout_ height的固定值進行比較。如果圖片寬/高小,圖片將會以其高/寬來填充ImageView,此時的ImageView的ImageView的layout_ height/layout_ width將與圖片的高/寬相同。如果圖片寬/高大于或者等于,ImageView將與圖片擁有相同的寬高比,也就是說圖片將會以自身的寬高比填充到ImageView。

舉一個簡單的例子:ImageView的layout_ width="100dp",layout_ height="wrap_ content"的時候,圖片的寬度將會與100dp進行對比(拋開單位換算)。A、如果圖片的寬度小于100dp,ImageView的layout_height將與圖片的高相同,即圖片不會縮放,完整顯示在ImageView中,ImageView高度與圖片實際高度相同。圖片沒有占滿ImageView,ImageView中有空白。B、如果圖片的寬度大于或等于100dp,圖片將保持自身寬高比縮放,完整顯示在ImageView中,并且完全占滿ImageView。

(三)當ImageView的layout_ width和layout_ height都是wrap_content的時候。adjustViewBounds是沒有意義的,因為ImageView將始終與圖片擁有相同的寬高比(但是并不是相同的寬高值,通常都會放大一些)。

【來源】http://www.itdecent.cn/p/13de1774471c

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

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

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