Вложенные фигуры в Android - PullRequest
2 голосов
/ 11 декабря 2010

Я пытаюсь нарисовать фигуру, которая имеет три прямоугольных фигуры:
1. сплошной цвет 2. градиент 3. белая линия
Как я могу это сделать? Когда я пытаюсь это, это не работает. Макет имеет родительский цвет.

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    android:height="60px"
    >
    <shape 
        android:shape="rectangle" 
        android:height="30px"
        >
        <solid 
            android:color="#ff297baf" 
            />
    </shape>
    <shape 
        android:shape="rectangle"
        android:height="30px"
        >
         <gradient
  android:type="linear"
  android:startColor="#ff297baf"
  android:endColor="#ff16c0e3"
  android:angle="270"/> 
    </shape>
    <shape
        android:shape="rectangle"
        android:height="3px"
        >
        <solid 
            android:color="#FFFFFFFF"
            />
    </shape>
</shape>

Я пытаюсь сделать градиент в 3 цвета. Начните с сплошного цвета #ff297baf, на 60% начните градиент от #ff297baf до #ff16c0e3 и добавьте в конце черту.

1 Ответ

10 голосов
/ 11 декабря 2010

Если вы собираетесь использовать несколько фигур, попробуйте LayerListDrawable.Как-то так у меня работает, но только для вашего примера высота 60px.Возможно, вам придется изменить его в соответствии с вашими потребностями, но это поможет вам начать:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <gradient
            android:angle="270"
            android:endColor="#ff16c0e3"
            android:startColor="#ff297baf"
            android:type="linear" />
    </shape>
</item>
<item android:top="57px">
    <shape android:shape="rectangle">
        <solid android:color="#FFFFFFFF" />
        <size android:height="3px" />
    </shape>
</item>

...