Android L 忽略形状作为可绘制背景
Posted
技术标签:
【中文标题】Android L 忽略形状作为可绘制背景【英文标题】:Android L is ignoring shapes as drawable background 【发布时间】:2014-06-26 22:47:29 【问题描述】:我正在我的 Nexus 5 上测试 android L Preview。我的应用出现问题。
我有一些带有背景设置的 TextView:
android:background="@drawable/rounded_textview"
而“rounded_textview”只是形状。它在
<?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 都是透明的。 知道我做错了什么吗?
【问题讨论】:
此错误已在 Android Developer Preview 错误跟踪器上报告,并有望在 Android L 最终版本之前得到修复:code.google.com/p/android-developer-preview/issues/… 【参考方案1】:我发现将形状包装在选择器和项目标签中可以使其工作
<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>
【讨论】:
是的。这解决了我的问题。 感谢您的解决方法,但我仍然希望 Google 能够在 Android L 正式发布之前解决此问题。有没有人在官方的 Android 错误跟踪器上报告过这个? 这适用于纯色形状:) 但是包裹在选择器中对渐变形状没有影响:/ 如果所有角的半径都相同,则可以简单地使用 android:radius="3dp"。它适用于 Android L。 显然,这已在今天更新的 Nexus 5 Developer 图片中得到修复!【参考方案2】:只使用 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>
【讨论】:
是的。但这只是一个例子。我想为每个角落使用不同的半径。但是下面的答案对我来说是有效的。把你的东西放在以上是关于Android L 忽略形状作为可绘制背景的主要内容,如果未能解决你的问题,请参考以下文章