Android ImageView Src 和Background 區(qū)別
之前使用Glide的時候被ImageView的圖片設(shè)置弄混了(很低級的問題,確是經(jīng)常犯的問題),所以就去看了一下ImageView,補(bǔ)補(bǔ)基礎(chǔ)。
首先ImageView有兩個顯示圖片的屬性,分別是src和background。從名字上看可以知道第一個是資源(畫),第二個是背景(畫框)。
如何設(shè)置這兩個值呢?
//background mImageView.setBackground(); mImageView.setBackgroundResource(); mImageView.setBackgroundColor(); mImageView.setBackgroundDrawable(); //src mImageView.setImageResource(); mImageView.setImageDrawable(); mImageView.setImageURI();
其中設(shè)置background的4個方法中,最終都是調(diào)用了setBackgroundDrawable()這個@Deprecated的方法,額。
一些區(qū)別:
1.src存放的是原圖大小, background會根據(jù)組件的大小進(jìn)行拉伸。
2.src是圖片的內(nèi)容(畫),background是圖片的背景(畫框),可以同時存在。
3.background可以設(shè)置透明度,src不可以。
4.scaleType只對src起作用。這篇文字解釋的很清楚->ScaleType詳解
5.自定義ImageView中畫圖的時候使用setBackgroundDrawable。如果使用setImageDrawable,需要設(shè)置setIntrinsicHeight和setIntrinsicWidth,不然不會顯示的,具體原因去看看源碼吧。
通過此文希望能幫助到有需要的小伙伴,謝謝大家對本站的支持!
相關(guān)文章
Android使用自定義View實現(xiàn)360手機(jī)衛(wèi)士波浪球進(jìn)度的效果
360衛(wèi)士的波浪球進(jìn)度的效果,一般最常用的方法就是畫線的方式,先繪sin線或貝塞爾曲線,然后從左到右繪制豎線,然后再裁剪圓區(qū)域2018-05-05
Flutter實現(xiàn)漸變弧形進(jìn)度條的示例詳解
Android仿微信底部菜單欄功能顯示未讀消息數(shù)量

