回転タグ内にシェイプをネストできます。
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="90"
android:toDegrees="90">
<shape
android:shape="line">
<stroke
android:width="1dp"
android:color="#ff00ff"
android:dashWidth="1dp"
android:dashGap="2dp" />
</shape>
</rotate>
ただし、唯一の問題は、レイアウト xml で定義されたレイアウト パラメータが、元の形状の描画に使用される寸法になることです。つまり、行の高さを 30 dp にしたい場合は、レイアウト xml で 30 dp の layout_width を定義する必要があります。ただし、その場合、最終的な幅も 30 dp になり、ほとんどの状況では望ましくない可能性があります。これは基本的に、幅と高さの両方が同じ値である必要があることを意味します。これは、線に必要な長さの値です。これを修正する方法がわかりませんでした。
これは「Android 方式」のソリューションのようですが、私が言及したサイズの問題に対する何らかの修正または回避策がない限り、これはほとんどの人にとって機能しない可能性があります。本当に必要なのは、<shape/> または <stroke/> の方向属性です。
次のように、rotate タグの属性で別のドローアブルを参照することもできます。
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="90"
android:toDegrees="90"
android:drawable="@drawable/horizontal_line" />
ただし、私はこれをテストしておらず、同じ問題があると予想しています。
- 編集 -
ああ、私は実際に修正を考え出しました。レイアウト xml で負のマージンを使用して、不要な余分なスペースを取り除くことができます。そのような:
<ImageView
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_marginLeft="-15dp"
android:layout_marginRight="-15dp"
android:src="@drawable/dashed_vertical_line" />