背景可绘制错误

时间:2014-02-04 17:03:35

标签: android xml background drawable

我有一个带有某种开关按钮的应用程序,它实际上是2个textviews对齐在屏幕的中心,我有一个问题,而我在JB设备中测试应用程序它一切正常,但是当我在一些GB设备中测试后,textview的背景搞砸了。 这就是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>

抽拉/ 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>

抽拉/ 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 个答案:

答案 0 :(得分:4)

这是一个已知的错误。向右翻转版本12及以下。

像这样:

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

同样适用于第二个drawable。

您必须将这些已编辑(左右颠倒)的drawable放在res/drawable-v12文件夹中。如果不存在则创建它。您的常规drawable(上面发布的)将保留在red/drawable文件夹中。

错误归档于:Link

答案 1 :(得分:1)

如果将两个textview放在LinearLayout中,并在内部LinearLayout上设置角半径,会发生什么?

澄清:

<LinearLayout ...>
    <LinearLayout
        android:topLeftRadius="6dp"
        android:topRightRadius="6dp"
        android:bottomLeftRadius="6dp"
        android:bottomRightRadius="6dp"
        ... >

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

    </LinearLayout>
</LinearLayout>