Как нарисовать кусок круговой диаграммы с файлом изображения вместо заливки цветом в MPAndroidChart?

В настоящее время я использую библиотеку MPAndroidChart (v3.0.3) для разработки приложения для Android, которое может визуализировать шаги пользователя в круговой диаграмме. В нашем дизайне мы хотим нарисовать фрагмент диаграммы с изображением, а не заполнять его определенным цветом. Я искал много сообщений, но не нашел полезной информации.

Наш дизайн пользовательского интерфейса, как это изображение круговой диаграммы. Мы хотим нарисовать срез с изображением "узоров точек". в качестве индикатора для поощрения пользователя к достижению ежедневной цели. Можно ли это сделать с помощью MPAndroidChart? Если да, не могли бы вы дать мне несколько советов или ссылок, чтобы попробовать? Большое спасибо.

1 ответ

Это может быть сделано. Все, что вам нужно сделать, это создать две записи для pieChart. Задайте для 1 записи процент, который вы хотите отобразить, а для другой записи оставшийся процент от ста. Затем установите цвет первой записи на требуемый цвет и установите цвет вспомогательной записи как прозрачный. Также примените центральный текст, что вы хотите написать в центре.

Следуйте приведенному ниже коду, это сделает работу:

    PieChart pieChart = (PieChart) findViewById(R.id.chart);

    ArrayList<PieEntry> pieEntries = new ArrayList<PieEntry>();
    pieEntries.add(new PieEntry(66, "Today"));
    pieEntries.add(new PieEntry(44, ""));

    PieDataSet pieDataSet = new PieDataSet(pieEntries, "");
    pieDataSet.setColors(Color.BLUE,Color.TRANSPARENT);
    pieDataSet.setHighlightEnabled(true);
    pieDataSet.setValueTextSize(12);
    pieDataSet.setValueTextColor(Color.TRANSPARENT);

    PieData pieData = new PieData(pieDataSet);

    pieChart.getDescription().setText("");
    pieChart.setEntryLabelColor(Color.TRANSPARENT);
    pieChart.getDescription().setTextSize(12);
    pieChart.setDrawCenterText(true);
    pieChart.setCenterText("1600 Steps");
    pieChart.setCenterTextSize(22);
    pieChart.setCenterTextColor(Color.BLUE);
    pieChart.setEntryLabelTextSize(12);
    pieChart.animateY(1000);
    pieChart.setData(pieData);

Другие вопросы по тегам