Как установить цвет в определенном срезе в PIE CHART MP ANDROID CHART? - PullRequest
0 голосов
/ 06 октября 2018

Я хочу установить конкретный цвет, когда значение равно 0. Я уже пробовал этот код, но он все равно не работает.

    if(etKids == 0){
        yvalues.add(new PieEntry(Float.parseFloat(String.valueOf(nilai.getSkala())), nilai.getNama()));
        int newcolor = Color.GRAY;
        dataSet.addColor(newcolor);

    }else{
        yvalues.add(new PieEntry(Float.parseFloat(etKids+"f"), nilai.getNama()));
    }

    if (test1.size() == test2.size()) {
        pieChart.getDescription().setText("Nilai sudah di konversi sesuai bobot !");
        pieChart.setExtraOffsets(5, 10, 5, 5);
        pieChart.setDragDecelerationFrictionCoef(0.9f);
        pieChart.setTransparentCircleRadius(61f);
        pieChart.setHoleColor(Color.WHITE);
        pieChart.animateY(1000, Easing.EasingOption.EaseInOutCubic);


        if(yvalues.contains(0))
            dataSet.setSliceSpace(3f);
        dataSet.setSelectionShift(5f);

        dataSet.setColors(ColorTemplate.COLORFUL_COLORS);
        PieData pieData = new PieData((dataSet));
        pieData.setValueTextSize(10f);
        pieData.setValueTextColor(Color.YELLOW);

        pieLegend.setPosition(Legend.LegendPosition.BELOW_CHART_CENTER);
        pieLegend.setWordWrapEnabled(true);
        pieChart.setCenterText("B+" );
        pieChart.setCenterTextSize(34f);
        pieChart.setCenterTextColor(Color.BLUE);
        pieChart.setData(pieData);

        progressBar_nilai.setVisibility(View.GONE);
        mAdapter.notifyDataSetChanged();

    }

Я хочу установить данные в if(etKids == 0){ } в серый. Я такжеработа с firebase, поэтому этот код if (test1.size() == test2.size()) {} используется в качестве флага, чтобы узнать асинхронность или дождаться полной загрузки данных, после чего только что показывается круговая диаграмма.Действительно спасибо

1 Ответ

0 голосов
/ 13 октября 2018

Используйте следующий фрагмент вместо dataSet.setColors(ColorTemplate.COLORFUL_COLORS);

if(etKids == 0)
{
    dataSet.setColors(Color.BLACK);
}
...