我成功关注了YouTube tutorial使用 MPAndroidChart 在我的应用程序中绘制饼图,为饼图的每一片赋予自己的颜色。 我创建了一个 OnChartValueSelectedListener,以便我可以知道用户单击了饼图的哪一部分,如下所示:
public class MyActivity implements OnChartValueSelectedListener {
@Override
public void onNothingSelected() {
// do stuff
}
@Override
public void onValueSelected(Entry e, int dataSetIndex, Highlight h){
Log.i("I clicked on", String.valueOf(e.getXIndex()));
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
...
(PieChart)chart = (PieChart) findViewById(R.id.chart);
...
chart.setOnChartValueSelectedListener(this);
}
}
但即使知道点击了哪个切片,我似乎也找不到改变其颜色的方法。
官方文档( https://github.com/PhilJay/MPAndroidChart/wiki/Setting-Colors )为我们提供了一种定义和更改颜色的方法,但仅限于数据集,并且 PieChart 似乎只有一个数据集,因此如果我更改数据集的颜色,则所有其他数据集的颜色都会更改切片会看到它们的颜色发生变化。
所以,我想知道是否有办法,在下面的监听器中
public void onValueSelected(Entry e, int dataSetIndex, Highlight h)
更改已单击切片的颜色? 这是您已经面临的问题吗?
最佳答案
这很简单。
只需用新的值替换您为 DataSet
对象设置的颜色值即可。
// get the color(s) you provided for the chart
List<Integer> colors = chart.getData().getDataSetByIndex(dataSetIndex).getColors();
int newcolor = Color.RED;
colors.set(e.getXIndex(), newcolor); // replace the color at the specified index
chart.invalidate(); // refresh
关于android - MPAndroidChart 单击后更改切片颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34724442/