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