【问题标题】:Unable to set color for BarChart in MPAndroidChart无法在 MPAndroidChart 中为 BarChart 设置颜色
【发布时间】:2016-12-08 06:15:44
【问题描述】:

我想从MPAndroidChart 为BarChart 中的条形设置特定颜色。我根据文档做所有事情,但颜色没有改变。 这是我的代码:

   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(); 

有趣的是,在我尝试改变条的颜色之前,条是蓝色的,在我尝试改变它的颜色之后,它变成了灰色(不管,它必须是什么颜色)。我不明白为什么颜色没有变化。 我还尝试在BarDataSet 类中覆盖getColor 方法,但结果是一样的——条是灰色的。

【问题讨论】:

    标签: android mpandroidchart


    【解决方案1】:

    改变这一行,

    dataSet.setColor(R.color.red); //resource id of a color
    

    到,

    dataSet.setColor(getResources().getColor(R.color.red)); //resolved color
    

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

    请参阅this question,了解有关资源 ID 和已解析颜色之间区别的更多信息。

    【讨论】:

    • 谢谢!它工作得很好,但我为什么要这样写呢?我的代码中有什么不正确的地方?而且,Android Studio 说,“getColor”方法已被弃用。我应该用什么来代替它?
    • 我发现我应该使用ContextCompat.getColor() 而不是弃用的getResourses().getColor(),但第一个问题仍然存在。
    【解决方案2】:
      BarDataSet dataSet = new BarDataSet(entries, "bars");
       dataSet.setColors(ColorTemplate.MATERIAL_COLORS);
    

    【讨论】:

      【解决方案3】:

      如果要设置颜色,可以创建颜色数组。然后将该数组设置为 Bardataset。 示例如下。

      int[] colors = {Color.rgb(153, 193, 12), Color.rgb(179, 130, 76)};
      
          Bardataset.setColors(colors);
      

      我认为您应该按此顺序编写您的代码。 看看下面:

            BarDataSet dataSet = new BarDataSet(entries, "bars");
            dataSet.setColor(Color.parseColor("#104E78"));
            BarData barData = new BarData(dataSet);
      

      试试看。

      【讨论】:

        【解决方案4】:

        我们可以这样改变颜色。

            bardataset.setColors(new int[]{getResources().getColor(R.color.red)});
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-05-22
          • 1970-01-01
          • 2015-04-22
          • 1970-01-01
          相关资源
          最近更新 更多