Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android xml layer-list not displayed correctly on some devices

I have an xml layer list drawable as a background for view, which is not displayed correctl on some devices.

I have a Huawei Ascend Mate with 4.2.2 which displays it ok. On Asus phonepad tablet with 4.1.2 i see just the item shape stroke and dont see the other items.

What am I doing wrong?

<?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>
like image 672
Kirill Volkov Avatar asked Oct 25 '14 11:10

Kirill Volkov


1 Answers

I've fixed the issue. Apparently on some devices (android 4.0 and 4.1.1) the following code made all layers below the following shape to be overpainted with black color.

<item>
    <shape>
        <stroke
            android:width="4dp"
            android:color="@color/yellow_color" />
    </shape>
</item>

I have added transparent solid color for the shape and now it works fine.

<item>
    <shape>
        <stroke
            android:width="4dp"
            android:color="@color/yellow_color" />
        <solid android:color="@android:color/transparent" />
    </shape>
</item>

So never leave shapes with border without color as some devices will paint it black!

like image 138
Kirill Volkov Avatar answered Nov 06 '22 01:11

Kirill Volkov