为Android ListView分割器绘制两个笔划?

时间:2013-01-27 13:53:11

标签: android listview drawable divider

是否可以为ListView分隔符绘制两个笔画(一个接一个)?

我尝试了以下drawable,但它只显示了第一个笔画:

<?xml version="1.0" encoding="utf-8"?>

<shape
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="line">
    <stroke
            android:color="#eeeeee"
            />
    <size
            android:height="1px"
            />

    <stroke
            android:color="#c1c1c1"
            />
    <size
            android:height="1px"
            />
</shape>

2 个答案:

答案 0 :(得分:18)

是的,有可能。如果您想使用shape drawable创建它,则必须采用不同的方式。可绘制的形状只能包含一个形状,在您的情况下可以包含一条线。您可以在layer list drawable中组合两个形状。图层列表中的Drawable是一个在另一个上面绘制的,最后一个在顶部。要创建两条线,您只需为每条线设置正确的填充,以便两条线都可见。得到的drawable将是这样的(我在示例中使线条更粗):

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:bottom="2dp">
        <shape android:shape="line">
            <stroke
                    android:color="#eeeeee"
                    android:width="2dp"
                    />
            <size
                    android:height="4dp"
                    />
        </shape>
    </item>
    <item android:top="2dp">
        <shape android:shape="line">
            <stroke
                    android:color="#c1c1c1"
                    android:width="2dp"
                    />
            <size
                    android:height="4dp"
                    />
        </shape>
    </item>
</layer-list>

答案 1 :(得分:1)

如果你想要2个笔画真的很薄,那么我们说每个1px高度,我尝试了上面的解决方案而我无法做到。

我发现使用所需颜色的2个像素绘制一个小图像(1x2)更容易,然后在分隔符中定义图像:

android:divider="@drawable/myTinyDivider"

希望这有助于某人。