Линии формы всегда черные в формате XML.
Я пытаюсь сделать рисование, которое должно выглядеть как на рисунке ниже:
3 горизонтальные линии 1dp
каждый из которых имеет свой цвет, а оставшееся пространство должно быть заполнено градиентом:
Итак, я написал это:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="line">
<stroke android:width="1dp" android:color="#c80047"/>
</shape>
</item>
<item android:top="1dp">
<shape android:shape="line" >
<stroke android:width="1dp" android:color="#5ec800"/>
</shape>
</item>
<item android:top="2dp">
<shape android:shape="line" >
<stroke android:width="1dp" android:color="#ffffff"/>
</shape>
</item>
<item android:left="0dp" android:right="0dp" android:top="3dp">
<shape android:shape="rectangle">
<gradient android:angle="-90" android:startColor="#3B3B3B"
android:endColor="#000000" />
</shape>
</item>
</layer-list>
Градиент правильно нарисован, но 3 линия остается черной. Я пытался добавить <stroke android:color="a_color" />
без результата.
Что мне не хватает?
2 ответа
Эти линии нарисованы, но они нарисованы не сверху, где вы думаете, а вместо этого они нарисованы в центре рисованного элемента (вы можете увидеть это, если переместите последний элемент, прямоугольник с градиентом вверху перед любым формы линий) и покрыты последним элементом, прямоугольником градиента.
Чтобы сделать это рисованным, вы можете попробовать это:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape>
<solid android:color="#c80047" />
<size android:height="1dp" />
</shape>
</item>
<item android:top="1dp">
<shape>
<solid android:color="#5ec800" />
<size android:height="1dp" />
</shape>
</item>
<item android:top="2dp">
<shape>
<solid android:color="#ffffff" />
<size android:height="1dp" />
</shape>
</item>
<item
android:left="0dp"
android:right="0dp"
android:top="3dp">
<shape android:shape="rectangle" >
<gradient
android:angle="-90"
android:endColor="#000000"
android:startColor="#3B3B3B" />
</shape>
</item>
</layer-list>
Все эти три линии выровнены по центру, я не видел параметров для настройки гравитации. Я бы пошел по этим линиям также как прямоугольник.
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="#c80047"/>
</shape>
</item>
<item android:top="1dp">
<shape android:shape="rectangle">
<solid android:color="#5ec800"/>
</shape>
</item>
<item android:top="2dp">
<shape android:shape="rectangle">
<solid android:color="#ffffff"/>
</shape>
</item>
<item android:left="0dp" android:right="0dp" android:top="3dp">
<shape android:shape="rectangle">
<gradient android:angle="-90" android:startColor="#3B3B3B"
android:endColor="#000000" />
</shape>
</item>
</layer-list>