8

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

我尝试了以下可绘制对象,但它只显示了第一个笔画:

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

2 回答 2

22

对的,这是可能的。如果您想使用形状可绘制对象创建它,则必须以不同的方式进行。一个可绘制的形状可以只包含一个形状,在你的情况下是一条线。您可以在图层列表 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>
于 2013-01-27T17:58:11.463 回答
1

如果您希望 2 笔画非常细,假设每个笔画 1px 高度,我尝试了上面的解决方案,但我做不到。

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

android:divider="@drawable/myTinyDivider"

希望这可以帮助某人。

于 2014-04-24T14:46:52.183 回答