Android - 顶部有圆角的抽屉只能在-14以下工作

时间:2015-05-15 05:51:18

标签: android dialog shape android-drawable

我正在尝试使用圆角按钮进行对话。但它不能在 API_LEVEL14

下工作

我正在尝试this,但没有解决方案。 如果您有任何api-14以下的解决方案,请分享。

对于以下API 14,它显示为

enter image description here

并且它在14级及以上的时候运行良好

enter image description here

代表right_below_corner.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_enabled="false"><shape android:shape="rectangle">
            <solid android:color="@color/header_bg_disable" />
            <corners android:topLeftRadius="0dp" />
            <corners android:topRightRadius="0dp" />
            <corners android:bottomLeftRadius="0dp" />
            <corners android:bottomRightRadius="10dp" />
            <stroke android:width="1dp" android:color="@color/header_bg_disable" />
            <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" />
        </shape></item>
    <item android:state_pressed="true"><shape android:shape="rectangle">
            <solid android:color="@color/header_bg_press" />
            <corners android:topLeftRadius="0dp" />
            <corners android:topRightRadius="0dp" />
            <corners android:bottomLeftRadius="0dp" />
            <corners android:bottomRightRadius="10dp" />
            <stroke android:width="1dp" android:color="@color/header_bg_press" />
            <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" />
        </shape></item>
    <item android:state_pressed="false"><shape android:shape="rectangle">
            <solid android:color="@color/header_bg" />
            <corners android:topLeftRadius="0dp" />
            <corners android:topRightRadius="0dp" />
            <corners android:bottomLeftRadius="0dp" />
            <corners android:bottomRightRadius="10dp" />
            <stroke android:width="1dp" android:color="@color/header_bg" />
            <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" />
        </shape></item>

</selector>

bottom_left_corner.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"><shape android:shape="rectangle">
            <solid android:color="@color/header_bg_press" />
            <corners android:bottomLeftRadius="10dp" />
            <corners android:topLeftRadius="0dp" />
            <corners android:topRightRadius="0dp" />
            <corners android:bottomRightRadius="0dp" />
            <stroke android:width="1dp" android:color="@color/header_bg_press" />
            <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" />
        </shape></item>
    <item android:state_pressed="false"><shape android:shape="rectangle">
            <solid android:color="@color/header_bg" />
            <corners android:topLeftRadius="0dp" />
            <corners android:topRightRadius="0dp" />
            <corners android:bottomRightRadius="0dp" />
            <corners android:bottomLeftRadius="10dp" />
            <stroke android:width="1dp" android:color="@color/header_bg" />
            <padding android:bottom="4dp" android:left="4dp" android:right="4dp" android:top="4dp" />
        </shape></item>
</selector>

1 个答案:

答案 0 :(得分:1)

是的,在版本3.1之前,Android中存在一个错误。分别指定角时,左下角和右下角会翻转: http://code.google.com/p/android/issues/detail?id=9161

唯一的解决方案是为这两个版本制作单独的xml文件。像这样:

res / drawable / corners.xml - 使用反转值

res / drawable-v12 / corners.xml - 使用正常值