XML Drawable生成错误的背景

时间:2014-11-03 17:01:40

标签: android xml

我有一个奇怪的问题,一个XML Drawable

在我的Galaxy Nexus手机(API 17)上,drawable看起来像这样是正确的。

enter image description here

然而,在较旧的手机(HTC Explorer)(2.3.5 Gingerbread)上看起来这是错误的

enter image description here

这是我的XML drawable

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

    <stroke
        android:width="2dp"
        android:color="#FF0000" />

    <padding
        android:bottom="3dp"
        android:left="3dp"
        android:right="3dp"
        android:top="3dp" />

</shape>

文字视图

 <TextView
        android:id="@+id/tvSet1One"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:gravity="center"
        android:text="01"
        android:textSize="20sp"
        android:textStyle="bold" />

请注意,文本视图的背景是通过setBackgroundResource方法在Java中设置的。

感谢您的阅读。

1 个答案:

答案 0 :(得分:0)

您必须在可绘制的xml中为您的形状添加透明背景(使用实体)。在较新的Android版本中,背景默认为透明,但在较旧的版本上,默认为黑色。

所以你的XML drawable是:

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

    <stroke
        android:width="2dp"
        android:color="#FF0000" />

    <padding
        android:bottom="3dp"
        android:left="3dp"
        android:right="3dp"
        android:top="3dp" />

    <solid
        android:color="#00000000"/>

</shape>