我有一个XML层列表,可以作为视图的背景绘制,但在某些设备上显示不正确。
我有一个华为Ascend Mate 4.2.2版本,显示OK。
在4.1.2版的华硕PhonePad平板电脑上,我只看到了项目形状笔划,没有看到其他项目。
我做错什么了?

<?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>

最佳答案

我已经解决了这个问题。显然,在一些设备(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>

所以千万不要让有边框的形状没有颜色,因为有些设备会把它涂成黑色!

07-27 22:25