8

ListView仕切りに2つのストロークを(次々に)描画することは可能ですか?

次のドローアブルを試しましたが、最初のストロークしか表示されません。

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

はい、可能です。シェイプドローアブルを使用して作成する場合は、別の方法で作成する必要があります。図形描画可能オブジェクトには、1つの図形、場合は1つの線のみを含めることができます。レイヤーリストドローアブルで2つの形状を組み合わせることができます。レイヤーリストのDrawableは上下に描画され、最後の1つが一番上に描画されます。2つの線を作成するには、各線に適切なパディングを設定して、両方の線が表示されるようにする必要があります。結果のドローアブルは次のようになります(例では線を太くしました):

<?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の高さにしたい場合は、上記の解決策を試しましたが、作成できませんでした。

小さな画像(1x2)を2ピクセルで希望の色でペイントしてから、次のようにして仕切りで画像を定義する方がはるかに簡単であることがわかりました。

android:divider="@drawable/myTinyDivider"

これが誰かを助けることを願っています。

于 2014-04-24T14:46:52.183 に答える