Как разместить радиальный градиент фона - PullRequest
21 голосов
/ 30 октября 2011

Как я могу расположить форму радиального градиента в качестве фона в LinearLayout?Вот что у меня сейчас:

Форма:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:endColor="#e6e6e6"
        android:gradientRadius="800"
        android:startColor="#fafaf9"
        android:type="radial"/>
</shape>

LinearLayout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:background="@drawable/accueil_bg_gradient">
</LinearLayout>

Я хочу, чтобы мой градиент начинался с левого верхнего углаэкрана и заканчивается в правом нижнем углу.

Большое спасибо!

Ответы [ 2 ]

45 голосов
/ 22 ноября 2011

Вы можете переместить середину радиального градиента в другое положение отрисовки, используя атрибуты "centerX" и "centerY" градиента.Они представляют собой значения с плавающей запятой в диапазоне от 0 до 1,0, где (значения centerX, centerY соответственно) 0,0 - верхний левый угол, 1,1 - нижний правый угол

По умолчанию 0,5,0,5, что является серединой отрисовываемого / назначенного пространства.Пример черно-белого градиента длиной 100 пикселей (радиус), середина которого начинается в верхнем левом углу:

    <shape android:shape="rectangle">
        <gradient
            android:type="radial"
            android:startColor="#ffffff"
            android:endColor="#000000"
            android:gradientRadius="100"
            android:angle="270"
            android:centerX="0"
            android:centerY="0"/>

    </shape>
0 голосов
/ 30 октября 2011

установить это как фон mybackground.xml:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <shape android:shape="rectangle" android:layout_width="wrap_content">
            <stroke android:width="10dp" android:color="@color/darkBlue" />
            <solid android:color="#00000000" />
            <padding android:left="1dp" android:top="1dp" android:right="1dp"
                android:bottom="1dp" />
        </shape>
    </item>

    <item>
        <shape android:shape="rectangle">
            <gradient android:startColor="@color/grayBlue"
                android:endColor="@color/lightBlue" android:angle="270"
                android:centerColor="@color/lightBlue" />
            <!-- border width and color -->
            <stroke android:width="1dp" android:color="#FFDDDDDD" />
            <padding android:left="10dp" android:top="8dp" android:right="10dp"
                android:bottom="8dp" />
        </shape>
    </item>

</layer-list>
...