Android view的padding是view的一部分,可以点击,背景色也覆盖padding;
margin则不属于view,不能点击,背景色也不覆盖。
如果想结合二者,让view的主体有背景,边缘没有背景色,同时整个view又可以点击,怎么方便呢?
很简单的不凡是使用InsetDrawable。在insetdrawable中的inset有两个作用
1. 设置padding。可以通过开发工具查看,inset部分确实设置成为padding了。所以gravity啥的,都是不考虑padding这部分的。
2. 设置onDraw的绘制空间。如果以InsetDrawable为背景,那inset部分是不在绘制空间里面的。所以只会绘制android:drawable部分。
此时如果调用View.setPaddingXXX,那个只会修改padding,而没法改变绘制空间。