无法在MPAndroidChart中为BarChart设置颜色

Ale*_*llo 3 android mpandroidchart

我想在设置酒吧的特定颜色BarChartMPAndroidChart.我根据文档做了一切,但颜色没有变化.这是我的代码:

   barChart = (BarChart) findViewById(R.id.bar_chart);
   List<BarEntry> entries = new ArrayList<BarEntry>();
   entries.add(new BarEntry(1.0f, 10.0f)); //tmp values

   BarDataSet dataSet = new BarDataSet(entries, "bars");
   dataSet.setColor(R.color.red); //color from resourses

   BarData barData = new BarData(dataSet);

   barChart.setData(barData);
   barChart.invalidate(); 
Run Code Online (Sandbox Code Playgroud)

有趣的是,在我尝试改变条形颜色之前,条形图是蓝色的,在我试图改变它的颜色后,它变成了灰色(无论它必须是什么颜色).我不明白为什么颜色不会改变.我也尝试覆盖类中的getColor方法BarDataSet,但结果是一样的 - 条是灰色的.

灰色,但不是红色

Mag*_*ian 11

改变这一行,

dataSet.setColor(R.color.red); //resource id of a color
Run Code Online (Sandbox Code Playgroud)

至,

dataSet.setColor(getResources().getColor(R.color.red)); //resolved color
Run Code Online (Sandbox Code Playgroud)

当你调用时,setColor你需要传入一个表示RGB三元组的整数.R.color.red不是RGB三元组,而是一个表示资源的整数R.java.

有关资源ID和已解析颜色之间差异的更多信息,请参阅此问题.

  • 我发现,我应该使用 `ContextCompat.getColor()` 而不是弃用的 `getResourses().getColor()`,但第一个问题仍然存在。 (2认同)