3

Is it possible to create a button with striped background and rounded corners?

I know how to make striped background (diagonal stripes) using http://www.stripegenerator.com/ and bitmap xml with tileMode="repeat" and I know how to create round corners with shapes, I even can put them altogether in layer-list but I don't know how to make bitmap with rounded corners....

endryha
  • 7,166
  • 8
  • 40
  • 64

2 Answers2

1

I think you can have a look at the Draw Nine Patch tecnique.

This is the official documentation:

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

And this is a good tutorial to start with:

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

Stefano Ortisi
  • 5,288
  • 3
  • 33
  • 41
  • thanks for advice but I suspect that 9patch is not going to work because I have diagonal stripes, am I wrong? – endryha Jul 04 '12 at 13:05
1

I resolved my issue with following 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>
endryha
  • 7,166
  • 8
  • 40
  • 64