背景可绘制错误

3
我有一个应用程序,其中包含一些开关按钮,实际上是两个文本视图居中显示在屏幕上。我遇到了一个问题,在JB设备上测试应用时一切正常,但是当我在一些GB设备上测试时,文本视图的背景会混乱。这是JellyBean设备上的显示方式,它应该是这样的:This is how it has to look like而在GingerBread设备上显示如下:This is how it is showing你有什么想法吗?以下是xml文件中相关部分的内容: layout_activity.xml
<LinearLayout
        android:id="@+id/Layout_driver_status"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/Layout_Profile"
        android:layout_marginBottom="10dp"
        android:layout_marginTop="20dp"
        android:gravity="center_horizontal"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/tv_Libre"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/background_libre"
            android:paddingBottom="20dp"
            android:paddingLeft="40dp"
            android:paddingRight="40dp"
            android:paddingTop="20dp"            
            android:text="Libre"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#ffffff" />

        <TextView
            android:id="@+id/tv_NoDisponible"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/background_no_disponible"
            android:paddingBottom="20dp"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:paddingTop="20dp"       
            android:text="No Disponible"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="#ffffff" />
    </LinearLayout>

drawable/Background_libre.xml

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

    <item android:bottom="3dp">
        <shape android:shape="rectangle" >
            <corners 
                android:topLeftRadius="6dp"
                android:bottomLeftRadius="6dp"                
                 />
            <solid android:color="@color/libre_verde" />
        </shape>
    </item>

</layer-list>

drawable/Background_no_disponible.xml

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

    <item android:bottom="3dp">
        <shape android:shape="rectangle" >
            <corners android:bottomRightRadius="6dp" 
                     android:topRightRadius="6dp" 
                    />
            <solid android:color="@color/no_disponible_plomo" />
        </shape>
    </item>

</layer-list>
2个回答

4

这是一个已知的bug。对于版本12及以下,请将左右互换。

像这样:

<corners 
   android:topLeftRadius="6dp"
   android:bottomRightRadius="6dp" />

同理,第二个可绘制对象也是如此。
您需要将这些经过编辑的(左右翻转)可绘制对象放置在res/drawable-v12文件夹中。如果没有,请创建它。您的常规可绘制对象(您上面发布的一个)将保留在red/drawable文件夹中。
错误已提交至:链接

我正在做,但是还没有结果。 - Alejandro Cumpa
@El_Mochiq,你能发布你更新后的XML代码吗?我认为只有bottom_X_Radius需要更改,顶部的不受此错误影响。 - user3264740
我阅读了您发布的链接中的讨论,现在它已经正常工作了,谢谢! - Alejandro Cumpa

1
如果您将两个TextView放在一个LinearLayout中,并在内部LinearLayout上设置角半径,会发生什么?
为了澄清:
<LinearLayout ...>
    <LinearLayout
        android:topLeftRadius="6dp"
        android:topRightRadius="6dp"
        android:bottomLeftRadius="6dp"
        android:bottomRightRadius="6dp"
        ... >

        <TextView ... />
        <TextView ... />

    </LinearLayout>
</LinearLayout>

由于布局包裹内容,文本视图的边缘显示出来,而边框没有显示为圆角。 - Alejandro Cumpa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接