Список слоев xml для Android не отображается правильно на некоторых устройствах

У меня есть список слоев xml, который можно использовать как фон для просмотра, который не отображается на некоторых устройствах.

У меня есть Huawei Ascend Mate с 4.2.2, который отображает его в порядке. На планшетном планшете Asus с 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>

Ответ 1

Я исправил проблему. По-видимому, на некоторых устройствах (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>

Поэтому никогда не оставляйте фигуры с рамкой без цвета, так как некоторые устройства будут рисовать ее черным!

Ответ 2

Телефоны используют разные уровни API: 16 и 17. Убедитесь, что у вас нет нескольких каталогов значений для определенных целей (например, значения-v16 и values-v17).

Кроме того, элементы, которые не отображаются, содержат ссылки на некоторые чертежи, поэтому убедитесь, что файлы верны в каждом доступном каталоге для каждого экрана.

Ответ 3

Это, вероятно, потому, что вытачиваемые android:src="@drawable/dotted_bg", android:src="@drawable/dotted_bg" и android:src="@drawable/tls_bg" слишком большие. Найдите плотность экрана вашего устройства и проверьте его соответствующую папку ресурса (например, drawable-xhdpi) и уменьшите выделение в этой папке.