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