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

Kir*_*kov 10 xml android background drawable layer-list

我有一个xml图层列表drawable作为视图的背景,在某些设备上没有正确显示.

我有一个带有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>
Run Code Online (Sandbox Code Playgroud)

Kir*_*kov 46

我已经解决了这个问题.显然在某些设备(android 4.0和4.1.1)上,以下代码使得以下形状下的所有图层都用黑色覆盖.

<item>
    <shape>
        <stroke
            android:width="4dp"
            android:color="@color/yellow_color" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

我为形状添加了透明的纯色,现在工作正常.

<item>
    <shape>
        <stroke
            android:width="4dp"
            android:color="@color/yellow_color" />
        <solid android:color="@android:color/transparent" />
    </shape>
</item>
Run Code Online (Sandbox Code Playgroud)

所以永远不要留下没有颜色边框的形状,因为有些设备会把它漆成黑色!