2014-06-26 41 views
11

我正在测试我的Nexus 5上的Android L Preview。我的应用程序出现问题。Android L忽略了可绘制背景的形状

我有一些TextViews背景设定:

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 Developer Preview后台被忽略。我所有的TextView都是透明的。 任何想法我做错了什么?

+0

此bug已报道了Android的开发者预览版的bug跟踪系统,并希望能在最终发布前固定Android L: https://code.google.com/p/android-developer-preview/issues/detail?id=177 – BladeCoder

回答

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> 
+0

是的。这解决了我的问题。 – adek

+0

很好的回复,谢谢! – CyberDandy

+2

感谢您的解决方法,但是我仍然希望Google能够在Android L官方发布之前解决此问题。有没有人在官方的Android bug跟踪器上报告过这个问题? – BladeCoder

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> 
+0

是的。但这仅仅是一个例子。我想为每个角使用不同的半径。但是下面的答案正在处理我的案子。把你的东西放在。 – adek