Подтвердить что ты не робот

Атрибут угла в градиенте android

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

<?xml version="1.0" encoding="utf-8"?>


  <shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#ff0000"
        android:centerColor="#00ff00"
        android:endColor="#0000ff"
        android:angle="180"/>
    <corners android:radius="5dp" />
   </shape>

в приведенном выше xml я не получил атрибут angle. но когда я немного изменил значение angle, наклон шаблона. может ли кто-нибудь объяснить мне, как именно это работает...........:)

4b9b3361

Ответ 1

Градиент в основном представляет изменение в пространстве (в направлении) любой величины. С цветом он представляет собой изменение интенсивности цвета в направлении, представленном углом. Вот несколько диаграмм для представления этой концепции:
enter image description here

Здесь на рисунке показано изменение цвета в горизонтальном направлении (угол установлен 0).
Код XML:

    <shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:startColor="#000000"
        android:angle="0"/>
   </shape>

enter image description here

Здесь на рисунке показано изменение цвета в горизонтальном направлении (угол установлен 90).
Код XML:

<shape xmlns:android="http://schemas.android.com/apk/res/android">
<gradient
    android:startColor="#000000"
    android:angle="90"/>
 </shape>

Вы также можете использовать разные цвета в качестве начальных, центральных и конечных цветов. Вложенный вами код содержит все эти элементы.

Ответ 2

вы можете создать диагональный градиент из кода. Это намного проще, и у вас есть много вариантов оттуда. Этот фрагмент помог мне

public void SetGradient(View view) {
        GradientDrawable gd = new GradientDrawable(
                GradientDrawable.Orientation.TL_BR,
                new int[]{0xFF141a24, 0xFF293f49, 0xFF72554c});
        view.setBackground(gd);
    }

доступные направления из класса GradientDrawable

/*public enum Orientation {
        *//** draw the gradient from the top to the bottom *//*
        TOP_BOTTOM,
        *//** draw the gradient from the top-right to the bottom-left *//*
        TR_BL,
        *//** draw the gradient from the right to the left *//*
        RIGHT_LEFT,
        *//** draw the gradient from the bottom-right to the top-left *//*
        BR_TL,
        *//** draw the gradient from the bottom to the top *//*
        BOTTOM_TOP,
        *//** draw the gradient from the bottom-left to the top-right *//*
        BL_TR,
        *//** draw the gradient from the left to the right *//*
        LEFT_RIGHT,
        *//** draw the gradient from the top-left to the bottom-right *//*
        TL_BR,
    }*/

и вы вызываете метод из onCreate или onCreateView в фрагменте и передаете родительское представление (в моем случае).

 @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.dialog_view_parent, container);           
        ...

        SetGradient(view);

        return view;
    }

Ответ 3

Определяет цвет градиента для фигуры. атрибуты:

Android: угол Integer. Угол для градиента в градусах. 0 слева направо, 90 - снизу вверх. Он должен быть кратным 45. По умолчанию 0.

Кажется, что описание в документе противоречит карновскому ответу

Более подробную информацию вы можете найти на этой странице. http://developer.android.com/guide/topics/resources/drawable-resource.html#Transition