3

是否可以创建一个带有条纹背景和圆角的按钮?

我知道如何使用http://www.stripegenerator.com/和带有 tileMode="repeat" 的位图 xml 制作条纹背景(对角条纹),并且我知道如何使用形状创建圆角,我什至可以将它们完全放在图层中-list 但我不知道如何制作带圆角的位图....

4

2 回答 2

1

我想你可以看看 Draw Nine Patch 技术。

这是官方文档:

http://developer.android.com/tools/help/draw9patch.html

这是一个很好的教程:

http://radleymarx.com/blog/simple-guide-to-9-patch/

于 2012-07-04T12:54:08.073 回答
1

我用以下 xml 解决了我的问题

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item android:top="1dp" android:bottom="1dp" android:left="1dp" android:right="1dp">
                <bitmap android:src="@drawable/btn_green_light_bkg_pattern"
                        android:tileMode="repeat"
                        android:dither="true"/>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <corners android:radius="5dp"/>
                    <stroke android:width="2dp" android:color="#e6f4cc"/>
                    <solid android:color="@android:color/transparent"/>
                </shape>
            </item>
            <item android:top="2dp">
                <shape android:shape="rectangle">
                    <corners android:radius="5dp"/>
                    <stroke android:width="1dp" android:color="#c3e392"/>
                    <solid android:color="@android:color/transparent"/>
                </shape>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <corners android:radius="5dp"/>
                    <stroke android:width="1dp" android:color="#a6a6a6"/>
                    <solid android:color="@android:color/transparent"/>
                </shape>
            </item>
        </layer-list>
    </item>
    <item android:state_pressed="true">
        <layer-list>
            <item android:top="1dp" android:bottom="1dp" android:left="1dp" android:right="1dp">
                <bitmap android:src="@drawable/btn_green_dark_bkg_pattern"
                        android:tileMode="repeat"
                        android:dither="true"/>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <corners android:radius="5dp"/>
                    <stroke android:width="2dp" android:color="#e6f4cc"/>
                    <solid android:color="@android:color/transparent"/>
                </shape>
            </item>
            <item android:top="2dp">
                <shape android:shape="rectangle">
                    <corners android:radius="5dp"/>
                    <stroke android:width="1dp" android:color="#c3e392"/>
                    <solid android:color="@android:color/transparent"/>
                </shape>
            </item>
            <item>
                <shape android:shape="rectangle">
                    <corners android:radius="5dp"/>
                    <stroke android:width="1dp" android:color="@android:color/black"/>
                    <solid android:color="@android:color/transparent"/>
                </shape>
            </item>
        </layer-list>
    </item>
</selector>
于 2012-07-04T14:22:49.457 回答