MPAndroidChart - 饼图的所有部分都是相同的颜色

时间:2018-03-18 13:58:17

标签: android mpandroidchart

我正在使用MPAndroidChart(https://github.com/PhilJay/MPAndroidChart)库来生成饼图。我遵循了多个教程,包括维基页面,但是当我创建我的饼图时,所有的部分都是相同的颜色。知道怎么解决这个问题?

代码:

PieChart mChart = (PieChart) findViewById(R.id.piechart);

List<PieEntry> pieChartEntries = new ArrayList<>();

pieChartEntries.add(new PieEntry(18.5f, "Green"));
pieChartEntries.add(new PieEntry(26.7f, "Yellow"));
pieChartEntries.add(new PieEntry(24.0f, "Red"));
pieChartEntries.add(new PieEntry(30.8f, "Blue"));

PieDataSet set = new PieDataSet(pieChartEntries, "Emotion Results");
PieData data = new PieData(set);
mChart.setData(data);
set.setColors(R.color.pieColour1,R.color.pieColour2,R.color.pieColour3,R.color.pieColour4,R.color.pieColour5,R.color.pieColour6,R.color.pieColour7,R.color.pieColour8);
mChart.invalidate();

enter image description here

1 个答案:

答案 0 :(得分:3)

文档说:

  

当添加一些额外的样式时,由此产生的PieChart   上面使用的数据看起来与此类似

这些不是真正的颜色,而是颜色的标签:

pieChartEntries.add(new PieEntry(18.5f, "Green"));
pieChartEntries.add(new PieEntry(26.7f, "Yellow"));
pieChartEntries.add(new PieEntry(24.0f, "Red"));
pieChartEntries.add(new PieEntry(30.8f, "Blue"));

要为您使用的PieChart添加颜色:

set.setColors(new int[]{Color.parseColor("#FF32DA64"),
                    Color.parseColor("#FF32DAD4"),
                    Color.parseColor("#FFB853F2"),
                    Color.parseColor("#FFF2ED53")});

或者你可以使用其中一个模板:

set.setColors(ColorTemplate.COLORFUL_COLORS);

修改

我刚看到您正在使用资源中的颜色,如果您检查setColors方法,您应该看到这个:

  

如果您使用资源中的颜色,请确保颜色   已经准备好了(通过调用getResources()。getColor(...))

因此,在您的情况下,您需要先将资源解析为Color个对象,然后再将其添加到set