1

我有一个带有对角线背景图案的自定义按钮,我真的很疯狂地将它转换为九个补丁 png。我有很多不同大小的按钮,我应该在哪里使用它,九个补丁看起来就是这样。有可能吗?还是有比九个补丁更好的解决方案?

原始按钮

4

1 回答 1

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>
于 2013-01-26T21:34:29.157 回答