亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

ImageView一個值得注意的屬性adjustViewBounds(一)

標簽:
Android

引语:多少难熬的我都熬过去了,如今的我不闻不问不痛不痒又凭什么不快乐。

ImageView设置 maxWidth/maxHeight 和 adjustViewBounds

在使用ImgaView的时候,我们往往会在布局文件中设置maxWidth/maxHeight,maxWidth/maxHeight是用来设置ImageView可以显示的最大宽/高,但是在Android机制中,只用当设置adjustViewBounds="ture"的时候,maxWidth/maxHeight设置效果才能有效。

官方api解释:An optional argument to supply a maximum width for this view. Only valid if setAdjustViewBounds(boolean) has been set to true.

那么adjustViewBounds="ture"是什么意思尼?

当adjustViewBounds="ture"的时候,Adjust the ImageView's bounds to preserve the aspect ration of its drawable。什么意思尼?意思是说通过调整ImageView的界限来保持图片的宽高比例。这里的比例是指图片(真正需要加载的图片)宽高的比例,而非ImageView比例,简单来说adjustViewBounds="ture"的时候,图片的宽高比有可能发生变化。

那么接下来我们分析一下,如果设置adjustViewBounds="ture",图片宽高比到底将会什么变化?

在布局文件XML中设置adjustViewBounds="ture"的时候,会将这个ImageView的scaleType属性设置为fitCenter,但是如果同时在XML文件中设置android:scaleType,则android:scaleType的优先级会更高,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将始终与图片拥有相同的宽高比(但是并不是相同的宽高值,通常都会放大一些)。

5b9d272b0001c72c02800282.jpg

原文链接:http://www.apkbus.com/blog-613740-68031.html

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消