Предотвращать частичное перекрытие хода, способного вытягивать форму

Есть ли способ предотвратить частичное перекрытие stroke на shape drawable . Я предпочитаю полностью перекрывать ход на границах формы.

Вот мой xml

 <?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> 

colors.xml

 <color name="green">#0f0</color> <color name="red_50">#8f00</color> 

И вот что достигнуто
Образец изображения

Поскольку вы можете видеть, что удар перекрывает твердую часть на 50%, но я хочу, чтобы она составляла 100%.

Solutions Collecting From Web of "Предотвращать частичное перекрытие хода, способного вытягивать форму"

Попытайтесь разделить его на две формы: одну для штриха и одну для прямоугольника . В этом решении я манипулирую размером прямоугольника, чтобы изменить его отношение с границами.

 <?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 или ничего.