MPAndroidChart生成饼图所有扇区颜色相同问题求助
解决MPAndroidChart饼图所有扇区颜色相同的问题
嘿,我之前也踩过这个坑!你现在的问题很明确——没有给饼图的数据集指定颜色集合,MPAndroidChart不会自动为每个扇区分配不同颜色,得咱们手动配置~
具体解决步骤:
- 创建颜色列表:先准备好你想要给每个扇区用的颜色,放进一个
ArrayList<Integer>里 - 绑定颜色到数据集:把这个颜色列表设置给饼图的
PieDataSet对象 - 完成数据绑定:把配置好的数据集传入
PieData,再设置给饼图
修正后的完整代码示例:
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")); // 这里可以继续添加更多扇区条目 // 1. 创建颜色集合,数量和扇区条目对应 ArrayList<Integer> colors = new ArrayList<>(); colors.add(Color.GREEN); colors.add(Color.YELLOW); // 如果有更多扇区,继续添加对应颜色,比如colors.add(Color.RED); // 2. 创建数据集并绑定颜色 PieDataSet dataSet = new PieDataSet(pieChartEntries, "Categories"); dataSet.setColors(colors); // 3. 创建PieData并设置给图表 PieData pieData = new PieData(dataSet); mChart.setData(pieData); mChart.invalidate(); // 刷新图表生效
额外小技巧:
- 想用自定义十六进制颜色的话,用
Color.parseColor("#FF5722")来添加 - 也可以直接用项目里的颜色资源:
colors.add(ContextCompat.getColor(this, R.color.your_custom_color))(适配高API版本)
内容的提问来源于stack exchange,提问作者Matt D.
相关产品推荐
相关产品推荐

