0

我已经为渐变定义了 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

如何使用它?

4

3 回答 3

0

试试这个:

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

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

于 2012-04-04T05:37:43.813 回答
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>
于 2012-04-04T05:43:04.010 回答
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));
于 2012-04-04T05:49:14.107 回答