Android L не может рисовать пунктирную линию в качестве рисованного фона

#xml #shape #android-5.0-lollipop #dotted-line

#xml #фигуры #android-5.0-lollipop #пунктирная линия

Вопрос:

Android L не может рисовать пунктирную линию в качестве рисованного фона, как показано ниже:

 <?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item> 
<shape  android:shape="line" >

    <stroke
        android:dashGap="1dp"
        android:dashWidth="1dp"
        android:color="#999999" />

    <size android:height="1dp" />

    </shape>
</item>
</selector>
  

Я также использую layerType=’software’ в xml.
Пожалуйста, помогите.

Комментарии:

1. Вы пробовали добавлять ширину обводки?

Ответ №1:

1. Вид должен иметь высоту не менее 2dp (или wrap_content ), чтобы он отображался, поскольку обводка предназначена для обхода вида, и для этого нет места в 1dp.

2. Добавьте ширину к вашему xml:

 <stroke
    android:width="1dp"
    android:dashGap="1dp"
    android:dashWidth="1dp"
    android:color="#999999" />

<size android:height="1dp" 
    android:width="1dp"/>
  

3.Используйте layerType='software'

Комментарии:

1. android: width = «1dp» в stroke является обязательным для Android 5.0 и выше

2. Эй, Итай, size объявление в вашем примере неверно. Если у stroke вашего shape есть width of 1dp , то у него size должно быть height не менее 2dp . Аналогично, если у stroke вашего shape есть dashWidth of 1dp , то у него size должно быть width не менее 3dp .