角半径Android出了点问题

14 android cornerradius android-layout android-2.3-gingerbread android-4.0-ice-cream-sandwich

我正在为Android 2.3制作自己的搜索视图.

我有.

  • LinearLayout (水平)
  • AutoCompleteTextView
  • ImageButton

我添加的按钮,并AutoCompleteTextViewLinearLayout.

我想把一个角半径放在我自己的控制范围内,如下图所示.

在此输入图像描述

我将这个drawable设置为ImageButton

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
 <item android:state_pressed="true" >
    <shape>
        <solid
            android:color="#27AFE0" />
        <stroke
            android:width="0.5dp"
            android:color="#000000" />
        <corners
            android:topRightRadius="10dp" android:bottomRightRadius="10dp"
android:topLeftRadius="0.1dp"
            android:bottomLeftRadius="0.1dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>
<item>
    <shape>
        <solid android:color="#D3DBDE"/>
        <stroke
            android:width="0.5dp"
            android:color="#000000" />
        <corners
            android:topRightRadius="10dp" android:bottomRightRadius="10dp"
android:topLeftRadius="0.1dp"
            android:bottomLeftRadius="0.1dp" />
        <padding
            android:left="10dp"
            android:top="10dp"
            android:right="10dp"
            android:bottom="10dp" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

可绘制为AutoCompleteText

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <solid android:color="#D3DBDE"/>
        <stroke android:width="0.5dp" android:color="#000000"/>
        <corners android:topLeftRadius="10dp"
            android:bottomLeftRadius="10dp"
            android:topRightRadius="0.1dp"
            android:bottomRightRadius="0.1dp"/>
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

但是当我在android 2.3中运行它时,这是输出(模拟器和真实设备)

在此输入图像描述

如果我也在Android 4.0中运行.它工作正常.

在此输入图像描述

问题是,我的代码有什么问题?或Android 2.3中有错误?

Gre*_*lli 26

好的,这里的交易也让我感到满意.这有两件事.

在ImageButton选择器中,您似乎在每个角标记中复制了两个右角的属性两次.

第二个是android直到3.0版本的bug.分别指定角时,左下角和右下角会翻转.

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

我已将值提取出来并将它们放在两个不同的文件中,

res/values/corners.xml - 反转的东西

res/values-v12/corners.xml - 包含其中的合理值.

  • [文件夹名称应为**`values-v12`**而不是`values-12`](http://developer.android.com/guide/topics/resources/providing-resources.html#VersionQualifier). (2认同)