Вы можете вкладывать свою форму в тег поворота.
<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, будут размерами, используемыми для рисования исходной фигуры. Это означает, что если вы хотите, чтобы ваша строка была 30dp высотой, вам нужно определить layout_width 30dp в вашем макете xml. Но конечная ширина также будет 30dp в этом случае, что, вероятно, нежелательно для большинства ситуаций. По сути, это означает, что ширина и высота должны быть одним и тем же значением, значением желаемой длины линии. Я не мог понять, как это исправить.
Похоже, что это решение "android way", но если я не упомяну о каком-либо исправлении или обходном пути для проблемы с размерами, это, вероятно, не сработает для большинства людей. Что нам действительно нужно, так это атрибут ориентации в или .
Вы также можете попробовать сослаться на другой объект рисования в атрибутах тега поворота, например:
<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" />