欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MPAndroidChart 教程:设置颜色 Setting Colors

程序员文章站 2022-04-21 22:25:38
...

v1.4.0版本开始,不再需要(不建议使用)在先前版本中负责设置颜色的ColorTemplate对象。然而,它仍然保留所有预定义的颜色数组(例如,ColorTemplate.VORDIPLOM_COLORS并提供方便的方法,用于将颜色从资源(资源整数)转换为“真实”颜色。

现在可以通过DataSet对象直接指定颜色而不是通过ColorTemplate,这允许为每个DataSet单独设置样式。

在这个简短的例子中,我们有两个不同的LineDataSet对象代表两家公司的季度收入(之前在设置数据教程中提到过),我们现在想要设置不同的颜色。

我们想要什么:

  • “公司1”的值应由“红色”的四种不同变体表示
  • “公司2”的值应由“绿色”的四种不同变体表示

这就是代码的样子:

LineDataSet setComp1 = new LineDataSet(valsComp1, "Company 1");
  // sets colors for the dataset, resolution of the resource name to a "real" color is done internally
  setComp1.setColors(new int[] { R.color.red1, R.color.red2, R.color.red3, R.color.red4 }, Context);
  
  LineDataSet setComp2 = new LineDataSet(valsComp2, "Company 2");
  setComp2.setColors(new int[] { R.color.green1, R.color.green2, R.color.green3, R.color.green4 }, Context);

除此之外,还有许多其他方法可以为一个DataSet设置颜色,下面是一个完整的文档:

  • setColors(int [] colors, Context c):设置此DataSet应使用的颜色。只要DataSet表示的条目数高于colors数组的大小,就会重复使用颜色。您可以使用“new int [] {R.color.red,R.color.green,...}”为此方法提供颜色。在内部,使用getResources().getColor(...)解析颜色。
  • setColors(int [] colors):设置此DataSet应使用的颜色。只要DataSet表示的条目数高于colors数组的大小,就会重复使用颜色。在将它们添加到DataSet之前,请确保已准备好颜色(通过调用getResources().getColor(...))。
  • setColors(ArrayList<Integer> colors):设置此DataSet应使用的颜色。只要DataSet表示的条目数高于colors数组的大小,就会重复使用颜色。在将它们添加到DataSet之前,请确保已准备好颜色(通过调用getResources().getColor(...))。
  • setColor(int color):设置应用于此DataSet的唯一颜色。在内部,这将重新创建颜色数组并添加指定的颜色。

ColorTemplate 示例:

LineDataSet set = new LineDataSet(...);
set.setColors(ColorTemplate.VORDIPLOM_COLORS);

如果没有为一个 DataSet设置颜色,则使用默认颜色。

 

相关标签: 图表 Android