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