Атрибут угла в градиенте 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
, наклон шаблона. может ли кто-нибудь объяснить мне, как именно это работает...........:)
Ответы
Ответ 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