我有一个带有对角线背景图案的自定义按钮,我真的很疯狂地用九个补丁png来改造它。我有很多不同大小的按钮,我应该使用它,而九个补丁看起来就像是这样。 有可能吗?或者有一个比九个补丁更好的解决方案?
答案 0 :(得分:3)
经过一些试验和错误我做了...最好的方法是制作一个带有图层列表的自定义按钮及其中的所有元素。该图案是一个位图,圆角是位图顶部的笔划,以覆盖它。
结果
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke
android:width="1dp"
android:color="#ff4f565a" />
<corners
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
<solid android:color="#ff002f44" />
</shape>
</item>
<item
android:bottom="7dp"
android:left="7dp"
android:right="7dp"
android:top="7dp">
<shape>
<padding
android:bottom="7dp"
android:left="7dp"
android:right="7dp"
android:top="7dp" />
</shape>
</item>
<item android:top="-1dp" android:right="-1dp" android:left="-1dp" android:bottom="-1dp">
<bitmap
android:gravity="fill"
android:src="@drawable/bg_btn_pattern_gloss" />
</item>
<item android:top="-5dp" android:right="-5dp" android:left="-5dp" android:bottom="-5dp">
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<stroke
android:width="4dp"
android:color="#ff002f44" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
<solid android:color="#00000000" />
</shape>
</item>
</layer-list>