Как отобразить динамический c p ie график в android с помощью библиотеки MpChart Android - PullRequest
0 голосов
/ 15 апреля 2020

Привет в приведенном ниже коде хотите показать динамический c p ie график. От подсчета отдельного статуса. В том, что он содержит различные имена строк, как завершено, запланировано, завершено.

ниже значения для отдельных строк:

Count of Scheduled is:  42
Count of In Complete is:  12
Count of Completed is:  43 

Хотите отобразить эти значения в диаграмме p ie, хотите рассчитать процент, а имена строк хотите отобразить в правой части с процентом.

Ниже кода I попробовал не выполняет Мою задачу.

Может ли кто-нибудь помочь мне

 if (name.equals("taskstatus")) {
                                status_list = String.valueOf(values);
                              //  Log.d("status_list",status_list);
                                status.add(status_list);

                               int Count_schedueled = Collections.frequency(status, "Scheduled");
                               System.out.println("Count of Scheduled is:  "+ Count_schedueled);
                               int Count_Incomplete = Collections.frequency(status, "In Complete");
                               System.out.println("Count of In Complete is:  "+ Count_Incomplete);

                               int Complted_Count = Collections.frequency(status, "Completed");
                               System.out.println("Count of Completed is:  "+ Complted_Count);

                               String schedule = String.valueOf(Count_schedueled);
                               String incomplete = String.valueOf(Count_Incomplete);
                               String completed = String.valueOf(Complted_Count);
                               count_status = new String[] {schedule,incomplete, completed};
                               System.out.println("count_status:  "+ count_status);
                           }
setData(3,3F);
private void setData(int count, float range) {

        ArrayList<PieEntry> entries = new ArrayList<>();
        for (int i = 0; i < count ; i++) {
            entries.add(new PieEntry((float) ((Math.random() * range) + range / 5),
                    count_status[i % count_status.length],
                    getResources().getDrawable(R.drawable.share)));
        }



        PieDataSet dataSet2 = new PieDataSet(entries, "Status");
        dataSet2.setDrawIcons(false);

        dataSet2.setSliceSpace(3f);
        dataSet2.setIconsOffset(new MPPointF(0, 40));
        dataSet2.setSelectionShift(5f);

        int endColor3 = ContextCompat.getColor(getContext(), android.R.color.holo_green_dark);
        int endColor4 = ContextCompat.getColor(getContext(), android.R.color.holo_red_dark);
        int endColor5 = ContextCompat.getColor(getContext(), android.R.color.holo_orange_dark);



        dataSet2.setColors(endColor3,endColor5,endColor4);

        dataSet2.setEntries(entries);



        //dataSet.setSelectionShift(0f);

        PieData data2 = new PieData(dataSet2);
        data2.setValueFormatter(new PercentFormatter(chart2));
        data2.setValueTextSize(12f);
        data2.setValueTextColor(Color.WHITE);
         data2.setValueTypeface(tfLight);
        chart2.setData(data2);


        // undo all highlights
        chart2.highlightValues(null);

        chart2.invalidate();
    }
...