InsetDrawable

Android view的padding是view的一部分,能夠點擊,背景色也覆蓋padding;android

margin則不屬於view,不能點擊,背景色也不覆蓋。工具

 

若是想結合兩者,讓view的主體有背景,邊緣沒有背景色,同時整個view又能夠點擊,怎麼方便呢?開發工具

很簡單的不凡是使用InsetDrawable。在insetdrawable中的inset有兩個做用開發

1. 設置padding。能夠經過開發工具查看,inset部分確實設置成爲padding了。因此gravity啥的,都是不考慮padding這部分的。it

2. 設置onDraw的繪製空間。若是以InsetDrawable爲背景,那inset部分是不在繪製空間裏面的。因此只會繪製android:drawable部分。margin

此時若是調用View.setPaddingXXX,那個只會修改padding,而無法改變繪製空間。di

相關文章
相關標籤/搜索