2017-02-05 11 views
-1

Как можно рисовать вертикальную линию в XML-чертеже при использовании layer-list? Я объявлял 3 фигуры в чертеже, но по какой-то причине он не выглядит так, как ожидалось.Как нарисовать вертикальную фигуру в центре XML drawable

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item> 
     <shape android:shape="rectangle"> 
      <solid android:color="@color/green"/> 
     </shape> 
    </item> 

    <item android:top="0dp" android:left="1dp" android:bottom="0dp" android:right="5dp"> 
     <shape android:shape="rectangle"> 
      <size android:width="3dp"/> 
      <solid android:color="@android:color/white"/> 
     </shape> 
    </item> 
    <item android:top="0dp" android:left="5dp" android:bottom="0dp" android:right="1dp"> 
     <shape android:shape="rectangle"> 
      <size android:width="3dp"/> 
      <solid android:color="@android:color/white"/> 
     </shape> 
    </item> 
</layer-list> 

Текущий результат

enter image description here

Ожидаемый результат

enter image description here

ответ

1
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 

<item 
    android:width="16dp" 
    android:left="15px"> 
    <shape 
     android:shape="rectangle"> 
     <solid android:color="@color/colorAccent" />/> 
     <size android:width="5dip" /> 
     <stroke android:color="@color/colorAccent" /> 
    </shape> 
</item> 
<item 
    android:width="16dp" 
    android:left="80px"> 

    <shape 
     android:shape="rectangle"> 
     <solid android:color="@color/colorAccent" />/> 
     <size android:width="5dip" /> 
     <stroke android:color="@color/colorAccent" /> 
    </shape> 
</item> 

<item 
    android:width="16dp" 
    android:left="140px"> 
    <shape 
     android:shape="rectangle"> 
     <solid android:color="@color/colorAccent" />/> 
     <size android:width="5dip" /> 
     <stroke android:color="@color/colorAccent" /> 
    </shape> 
</item> 

</layer-list> 
+0

Для этого кода требуется API 23+. В любом случае это может быть создано для более низкого API? Мой минимальный API равен 17. – MacaronLover

+0

Я не уверен:/... В любом случае, вы можете использовать другой пример. Добавьте форму в отдельный файл макета и используйте

0

Попробуйте это решение

вытяжке/shape.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" 
android:shape="rectangle"> 
<solid android:color="@color/colorAccent" />/> 
<size android:width="5dip" /> 
<stroke 
    android:color="@color/colorAccent" 
    /> 
</shape> 

Включить в макете файла Следующие

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal"> 

<View 
    android:layout_width="15dip" 
    android:layout_height="wrap_content" 
    android:layout_margin="@dimen/activity_horizontal_margin" 
    android:background="@drawable/shape"></View> 

<View 
    android:layout_width="15dip" 
    android:layout_height="wrap_content" 
    android:layout_margin="@dimen/activity_horizontal_margin" 
    android:background="@drawable/shape"></View> 

<View 
    android:layout_width="15dip" 
    android:layout_height="wrap_content" 
    android:layout_margin="@dimen/activity_horizontal_margin" 
    android:background="@drawable/shape"></View> 

</LinearLayout> 

Измените цвета и закрепить края макета.

+0

Есть ли способ сделать это только в XML-чертеже? Мне нужно, чтобы это рисовалось в XML-файле с возможностью рисования только из-за моего массива изображений. – MacaronLover

+0

Вы можете попробовать список слоев ... проверить мой следующий комментарий –

 Смежные вопросы

  • Нет связанных вопросов^_^