作为背景的长方形形状导致黑背景

Ski*_*kip 4 layout android background border

我想在我的RableRow周围创建一个边框.我使用以下形状作为背景.

bg_stroke_dotted_right

    <?xml version="1.0" encoding="utf-8"?>
    <layer-list  xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:top="-4dp"
            android:left="-2dp"
            android:bottom="-4dp" 

            android:drawable="@drawable/stroke_dotted">
        </item>
    </layer-list>
Run Code Online (Sandbox Code Playgroud)

stroked_dotted drawable

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
        <solid android:color="#000000" />
        <stroke
            android:dashGap="4dp"
            android:dashWidth="2dp"
            android:width="2dp"
            android:color="@color/greyDark" />

    </shape>
Run Code Online (Sandbox Code Playgroud)

我不明白为什么使用"bg_stroke_dotted_right"作为bg - 用黑色文件背景.一旦我将"bg_stroke_dotted_right"添加为bg - bg变为黑色.

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/bg_stroke_dotted_right"
            >
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

小智 11

在形状试试这个:

<solid android:color="#00000000" />
Run Code Online (Sandbox Code Playgroud)

在这种情况下,前2"00"是颜色的alpha,"00"是透明的.

请享用!


pab*_*sco 8

接受的答案建议在实体元素中使用透明.因为这是bug的原因(缺少实体元素在android <4.2上回落为黑色)解决方案不是最优的.

对于初学者而不是硬编码你可以使用的颜色,@android:color/transparent但它可能最好使用,@null以便它不会透支.像这样的东西:

<solid android:color="@null" />
Run Code Online (Sandbox Code Playgroud)