InsetDrawable对应res/drawable/下的inset标签,他表示一个drawable资源以制定内边距的方式内嵌入另一个drawable资源文件。
不同于drawable的padding属性,padding制定drawable内图与自身的内边距。当View需要的背景比边框小的时候比较适合使用InsetDrawable。
属性解析:(res/drawable/inset.xml)
<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/beauty" //指定drawable资源
android:insetLeft="20dp" //dimension 与左边的距离
android:insetRight="20dp" //dimension 与右边的距离
android:insetTop="20dp" //dimension 与顶部的距离
android:insetBottom="20dp" > //dimension 与底部的距离
</inset>
xml中的引用:
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="hello"
android:background="@drawable/inset"/>
纯代码实现:
InsetDrawable insetDrawable=new InsetDrawable(getResources().getDrawable(R.drawable.aa), 20, 20, 20, 20);
Button btn=(Button) findViewById(R.id.btn);
btn.setBackground(insetDrawable);