您可以将形状嵌套在旋转标签内。
<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 高,你需要在你的布局 xml 中定义一个 30dp 的 layout_width。但在这种情况下,最终宽度也将是 30dp,这在大多数情况下可能是不可取的。这实质上意味着宽度和高度必须是相同的值,即您想要的线条长度的值。我不知道如何解决这个问题。
这似乎是“android 方式”解决方案,但除非我提到的尺寸问题有一些修复或解决方法,否则这可能不适用于大多数人。我们真正需要的是 <shape/> 或 <stroke/> 中的方向属性。
您还可以尝试在旋转标签的属性中引用另一个可绘制对象,例如:
<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" />