在MPAndroidChart条形图中为条形设置不同的颜色

Jis*_*eep 2 android mpandroidchart

如何根据Y轴的值设置不同条形的颜色?我正在使用MPAndroidChart库制作图形。这是我制作条形图的步骤:

        BarChart barChart = (BarChart) findViewById(R.id.chart);
        BarDataSet dataset = new BarDataSet(entries, "Calorie Level");


        ArrayList<String> labels = new ArrayList<String>();
        labels.add("0");
        labels.add("1");
        labels.add("2");  

        BarData data = new BarData(labels, dataset);
        barChart.setData(data);
        barChart.animateY(2000);
Run Code Online (Sandbox Code Playgroud)

我正在从以下函数计算值。我需要根据下面给出的'delta'值设置每个条形的颜色

private void addCalories(int calories, int time)
        {   totalCals += calories;
            float HBNow = HBE * time / 24;
            float delta = totalCals - HBNow;
            entries.add(new BarEntry(delta, time));
            Log.e("My Activity:", "Delta" + delta + "Time:" + time);
        }
Run Code Online (Sandbox Code Playgroud)

sau*_*vik 5

您可以创建一个包含您的颜色的数组列表

ArrayList<Integer> colors = new ArrayList<Integer>();

colors.add(ContextCompat.getColor(this, R.color.dodger_blue));
colors.add(ContextCompat.getColor(this, R.color.peach));
colors.add(ContextCompat.getColor(this, R.color.medium_pink_three));
colors.add(ContextCompat.getColor(this, R.color.aqua));
colors.add(ContextCompat.getColor(this, R.color.greeny_blue));
colors.add(ContextCompat.getColor(this, R.color.charcoal));
colors.add(ContextCompat.getColor(this, R.color.charcoal_grey));
Run Code Online (Sandbox Code Playgroud)

然后像这样将数组设置为图表数据集

dataset.setColors(colors);
Run Code Online (Sandbox Code Playgroud)

在您的addCalories()函数中,您可以使用自己的逻辑来创建包含颜色的数组。一旦计算了所有值,就可以为数据集设置颜色。