我有一个xml图层列表可作为视图的背景,在某些设备上无法正确显示。
我有一个带有4.2.2的Huawei Ascend Mate,显示它没问题。 在华硕手机平板电脑4.1.2我看到项目形状笔划,没有看到其他项目。
我做错了什么?
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<solid android:color="@color/yellow_color" />
</shape>
</item>
<item>
<bitmap
android:gravity="center_horizontal|bottom"
android:src="@drawable/dotted_bg"
android:tileMode="repeat" />
</item>
<item>
<shape>
<stroke
android:width="4dp"
android:color="@color/yellow_color" />
</shape>
</item>
<item>
<bitmap
android:gravity="center_horizontal|bottom"
android:src="@drawable/tls_bg" />
</item>
</layer-list>
答案 0 :(得分:45)
我已经解决了这个问题。显然在某些设备(android 4.0和4.1.1)上,以下代码使得以下形状下面的所有图层都用黑色覆盖。
<item>
<shape>
<stroke
android:width="4dp"
android:color="@color/yellow_color" />
</shape>
</item>
我为形状添加了透明纯色,现在效果很好。
<item>
<shape>
<stroke
android:width="4dp"
android:color="@color/yellow_color" />
<solid android:color="@android:color/transparent" />
</shape>
</item>
所以永远不要留下没有颜色边框的形状,因为有些设备会把它涂成黑色!
答案 1 :(得分:0)
手机使用不同的API级别:16&amp; 17.确保您没有针对特定目标的多个值目录(例如 values-v16 &amp; values-v17 )。
此外,未显示的项目包含对某些drawable的引用,因此请确保每个屏幕dpi的每个 drawable 目录中的文件都是正确的。
答案 2 :(得分:0)
这可能是因为可绘制的android:src="@drawable/dotted_bg"
,android:src="@drawable/dotted_bg"
和android:src="@drawable/tls_bg"
太大了。找到您设备的屏幕密度并检查其相应的资源文件夹(例如drawable-xhdpi
),并使该文件夹中的可绘制内容更小。