如何在以下代码中使用渐变

时间:2012-04-04 05:32:18

标签: android

我已经为渐变定义了XML。

<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient 
    android:startColor="#9acd32"
    android:endColor="#ffffff"
    android:angle="180"
    />

我想在下面的代码中使用渐变。

XYRegionFormatter regionFormatter3 = new XYRegionFormatter(Color.BLUE);

而不是Color.BLUE

如何使用它?

3 个答案:

答案 0 :(得分:0)

试试这个:

XYRegionFormatter regionFormatter3 = new XYRegionFormatter(getResources().getColor(R.color.<xml_file_name>));

修改
我意识到它需要一个Color属性,而这一行试图将它交叉引用到drawable,这是错误的。渐变实际上形成了一个drawable,而XYRegionFormatter需要一个 Color 属性。因此,在这种情况下不能使用梯度绘图。代码中没有其他可能的使用渐变作为颜色属性,afaik。另外,由于XYRegionFormatter没有定义任何使用 Drawable()的方法,或者甚至 Paint()就此而言,目前似乎无法对您正在查看的场景使用渐变。

答案 1 :(得分:0)

试试这个......

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <gradient android:type="radial" android:gradientRadius="250"
        android:startColor="#E9E9E9" android:endColor="#D4D4D4" />
</shape>

答案 2 :(得分:0)

你应该做这样的事情。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient 
android:startColor="#9acd32"
android:endColor="#ffffff"
android:angle="180"
/>
</shape>

这个xml将在你的res / drawable中,名称如shape.xml

现在您可以在代码中传递此代码。

  XYRegionFormatter regionFormatter3 = new XYRegionFormatter(getResources().getDrawable(R.drawable.shape));