Как сделать двойной градиент с XML (как на iphone) - PullRequest
14 голосов
/ 11 июля 2011

Как я могу сделать этот вид рисованного градиента с XML?

Double gradient image

Я могу сделать простой градиент от цвета A к цвету B, но я не знаю, как объединить два градиента в одном чертеже.

Ответы [ 2 ]

14 голосов
/ 24 декабря 2012

Я наконец-то нашел решение со списком слоев, которое мне достаточно:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- First part is a gradient -->
    <item android:left="0dp" android:right="0dp"> 
        <shape android:shape="rectangle">

            <gradient android:angle="-90" android:startColor="#9dcbf6"
                android:endColor="#177ee6" />

        </shape>
    </item>
    <!-- Second part is plain color. Slightly transparent -->
    <item android:top="1sp" android:bottom="20sp" > 
        <shape android:shape="rectangle">
            <solid android:color="#10ffffff"/>
        </shape>

    </item>
</layer-list>

Середина установлена ​​на 20 sp, потому что контейнер имеет высоту 40sp, но вы можете настроить его на свойбудет путем редактирования: android:bottom="20sp"

12 голосов
/ 11 июля 2011

Вы можете иметь три цвета в градиенте.Начальный цвет, конечный цвет и центральный цвет.

<gradient
        android:angle="integer"
        android:centerX="integer"
        android:centerY="integer"
        android:centerColor="integer"
        android:endColor="color"
        android:gradientRadius="integer"
        android:startColor="color"
        android:type=["linear" | "radial" | "sweep"]
        android:usesLevel=["true" | "false"] />

Кроме того, вы можете использовать LayerList Drawable и просто соединить их вместе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...