Android xml图层列表在某些设备上无法正确显示

时间:2014-10-25 11:22:15

标签: android xml background drawable layer-list

我有一个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>

3 个答案:

答案 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),并使该文件夹中的可绘制内容更小。