有没有办法阻止stroke
shape drawable
上的<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<padding
android:bottom="0dp"
android:top="0dp"
android:left="0dp"
android:right="0dp" />
<solid android:color="@color/green" />
<stroke android:color="@color/red_50"
android:width="20dp"
android:dashGap="2dp"
android:dashWidth="10dp" />
</shape>
部分重叠。我更喜欢在形状的边界上完全重叠笔画。
这是我的xml
<color name="green">#0f0</color>
<color name="red_50">#8f00</color>
colors.xml
PathExpanderBuilder pathExpanderBuilder = PathExpanderBuilder.empty();
pathExpanderBuilder.add(RelationshipType.withName("worksat"), Direction.OUTGOING);
pathExpanderBuilder.add(RelationshipType.withName("competitorof"), Direction.BOTH);
pathExpanderBuilder.add(RelationshipType.withName("worksat"), Direction.INCOMING);
PathExpander<Object> pathExpander pathExpander = pathExpanderBuilder.build();
正如您所看到的,笔划与实体部分重叠了50%,但我希望它是100%。
答案 0 :(得分:6)
尝试将其分为两种形状 - 一种用于 描边 ,另一种用于 矩形 。在这个解决方案中,我操纵矩形的大小,以便我可以改变它与边界的关系。
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="@dimen/offset"
android:left="@dimen/offset"
android:right="@dimen/offset"
android:top="@dimen/offset">
<shape android:shape="rectangle">
<solid android:color="@color/green" />
</shape>
</item>
<item>
<shape android:shape="rectangle">
<stroke
android:width="20dp"
android:color="@color/red_50"
android:dashGap="2dp"
android:dashWidth="10dp" />
</shape>
</item>
</layer-list>
您可以调整偏移量以获得外部或内部笔划。
这些值来自 透明矩形 (笔触图层)和 绿色 的尺寸差异。在您的情况下,它们将是20dp
或无。