android渐变中的angular度属性

我正在通过testing的例子。 在某些Image背景中,他们使用渐变,代码就像这样

<?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的价值模式偏斜。 任何一个可以解释我如何工作……….. 🙂

渐变基本上代表任何数量的空间变化(在一个方向上)。 用颜色表示颜色强度在由angular度表示的方向上的变化。 下面是一些图表来表示这个概念:
在这里输入图像说明

这里的图显示了水平方向的颜色变化(angular度设置为0)。
XML代码:

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

在这里输入图像说明

图中显示了水平方向的颜色变化(angular度设置为90)。
XML代码:

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

您也可以使用不同的颜色作为开始,中间和结束颜色。 您附加的代码包含所有这些元素。

你可能想从代码创build对angular线渐变。 这很容易,你有很多从那里打开的选项。 这段代码帮助了我

 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; } 

指定形状的渐变颜色。 属性:

android:angle Integer。 渐变的angular度,以度为单位。 0是从左到右,90是从下到上。 它必须是45的倍数。默认值是0。

看来文件中的描述与karn的回答矛盾?

你可以在这个页面find更多的细节。http://developer.android.com/guide/topics/resources/drawable-resource.html#Transition