2

ベクターを使用してxmlでドローアブルを作成しています。パスを使用して長方形を描くことはできますが、完全に垂直または水平の線を描こうとすると表示されません。これが私のコードです

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">

    <path
        android:strokeWidth="1"
        android:strokeColor="#c1ae1e"
        android:pathData="M0 0,H24,V24,H0,V0"/>

    <path
        android:strokeWidth="3"
        android:strokeColor="#4c4c4c"
        android:fillColor="#36352c"
        android:pathData="M12 0,L12 24"/>

    <path
        android:strokeWidth="3"
        android:strokeColor="#4c4c4c"
        android:fillColor="#36352c"
        android:pathData="M0 12,L24 12"/>

</vector>

そして、ここにプレビュー出力があります- ここに画像の説明を入力

4

1 に答える 1

1

1 つのパスに結合してみてください。理由はわかりませんが、完全に水平または垂直の線が 2 つの点しかない場合、レンダリングされません。私は十字形を作らなければならなかったので、次のように垂直線と水平線の両方を組み合わせることで逃げることができました:

    <path
    android:strokeColor="#FF000000"
    android:strokeWidth="0.5"
    android:pathData="M14,0 l0,28 M0,14 l28,0"/>

これは、直線のように計算される円弧を作成した場合にも発生します (ほとんどの人が行うことではありませんが、円弧の値を変更しているときに見たことがあり、線が表示されない理由に関連している可能性があります)。

これを試してください:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24.0"
    android:viewportHeight="24.0">

    <path
        android:strokeWidth="1"
        android:strokeColor="#c1ae1e"
        android:pathData="M0 0,H24,V24,H0,V0"/>

    <path
        android:strokeWidth="3"
        android:strokeColor="#4c4c4c"
        android:fillColor="#36352c"
        android:pathData="M12 0,L12 24 M0 12,L24 12"/>

</vector>
于 2016-01-19T18:39:34.777 に答える