Android: shape corners do not work when setting individual corners

android

I need to have a background which has rounded bottom left/right coners(but not top left/right ones), below is my xml file:

<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle" android:padding="1dp">
        <solid android:color="#FFbdbebd"/>
        <corners
            android:bottomLeftRadius="12dip"
            android:bottomRightRadius="12dip"
            android:topLeftRadius="0dip"
            android:topRightRadius="0dip"/>
    </shape>
</item>
</layer-list>

But the result is a plain rectangle without any corner rounded, if I only use:

android:radius="12dip"

then all corners are rounded, I searched and found a bug related to this:

http://code.google.com/p/android/issues/detail?id=9161

but the bug states:

Left/right is switched, because android:bottomRightRadius="2dp" turned out to specify left-bottom rounded corner.

which may not be relavent to my issue, I also tried to use:

android:radius="12dip"

followed by

android:topLeftRadius="0dip"
android:topRightRadius="0dip"

without success.

Can anyone help? Thanks!

Best Answer

It seems to be a known issue. Every corner must be >1 or else no corners will be rounded. According to the Android documentation it can be done but it's kind of hacky:

Note: Every corner must (initially) be provided a corner radius greater than 1, or else no corners are rounded. If you want specific corners to not be rounded, a work-around is to use android:radius to set a default corner radius greater than 1, but then override each and every corner with the values you really want, providing zero ("0dp") where you don't want >rounded corners.

See here: http://developer.android.com/guide/topics/resources/drawable-resource.html#corners-element

Related Topic