Android L将形状视为可绘制背景

时间:2014-06-26 22:47:30

标签: android android-drawable android-5.0-lollipop

我在Nexus 5上测试Android L预览。我的应用程序出现了问题。

我有一些背景设置的TextView:

android:background="@drawable/rounded_textview"

" rounded_textview"只是形状。它在< = API19下工作得很好。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="3dp">
<solid android:color="#999999"/>
<corners
 android:bottomRightRadius="2dp"
 android:bottomLeftRadius="2dp"
 android:topLeftRadius="2dp"
 android:topRightRadius="2dp"/>
</shape>

在Android L开发者预览背景中被忽略。我的所有TextView都是透明的。 知道我做错了什么吗?

2 个答案:

答案 0 :(得分:36)

我发现将形状包裹在选择器和项目标签中使其工作

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">

            <solid android:color="@color/gray" />

            <corners
                android:bottomLeftRadius="3dp"
                android:topRightRadius="3dp"
                android:topLeftRadius="3dp"
                android:bottomRightRadius="3dp" />

        </shape>
    </item>
</selector>

答案 1 :(得分:0)

只需使用android:radius,不要使用每个角落选项。 我有同样的问题,但我能够用这种方式解决问题。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="3dp">
<solid android:color="#999999"/>
  <corners android:radius="2dp"/>
</shape>