如何创建带圆角的条纹按钮

时间:2012-07-04 12:50:49

标签: android

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

我知道如何使用http://www.stripegenerator.com/创建条纹背景(斜条纹)和使用tileMode =“repeat”创建位图xml,我知道如何使用形状创建圆角,我甚至可以将它们放在图层列表中但我不知道如何制作带圆角的位图......

2 个答案:

答案 0 :(得分:1)

我想你可以看看Draw Nine Patch tecnique。

这是官方文件:

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

这是一个很好的教程:

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

答案 1 :(得分: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>