您可以将形状嵌套在旋转标签内。
<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中将layout_width定义为30dp。但在这种情况下,最终宽度也将为30dp,这在大多数情况下可能是不希望的。从本质上讲,这意味着宽度和高度必须为相同的值,即线的所需长度的值。我不知道如何解决此问题。
这似乎是“ android方式”的解决方案,但是除非我提到有关尺寸问题的解决方法或变通办法,否则对于大多数人来说这可能行不通。我们真正需要的是<shape />或<stroke />中的direction属性。
您还可以尝试在Rotate标签的属性中引用另一个drawable,例如:
<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" />