在Android中将布局视图的背景颜色设置为渐变?

我如何指定Android布局视图元素的背景“颜色”应该是一个渐变(在一个特定的angular度)?

我希望在XML中指定它,即不在运行时。 最好作为一种风格,我可以适用于任何布局,我希望与style属性?

Solutions Collecting From Web of "在Android中将布局视图的背景颜色设置为渐变?"

/res/drawable创buildgradient.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFFFF" android:endColor="#00000000" android:angle="45"/> </shape> 

并在/res/layout中的main.xml布局文件中:

 <?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/gradient" > </LinearLayout> 

您可以通过replaceandroid:startColorandroid:endColor来replaceandroid:angle值和start / end颜色来指定angular度

你可以使用这样的东西:

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#A1A1A1" android:centerColor="#BDBDBD" android:endColor="#A4A4A4" android:angle="-90" /> </shape> 

build立一个渐变(你select你喜欢的颜色)。 把它放在drawable中,瞧你有自己的形状作为背景: android:background="@drawable/the_name_of_your_xml"

这是我如何设置渐变样式。 希望这可以帮助。 但是我用它来用于textview。 也许你必须做一些改变,以适应你的布局背景。

  Shader textShader = new LinearGradient(0, 0, 0, 20, new int[] { Color.WHITE, getResources().getColor(//some color), getResources().getColor(//some color), Color.WHITE }, new float[] { 0.25f,0.50f,0.75f, 1 }, TileMode.CLAMP); textview.getPaint().setShader(textShader);