Как нарисовать кусок круговой диаграммы с файлом изображения вместо заливки цветом в 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);