Добавляем в приложение диаграммы с помощью MPAndroidChart
Добавляем в приложение диаграммы с помощью MPAndroidChart
Главная » Добавляем в приложение диаграммы с помощью MPAndroidChart

Если ваше приложение работает с большими объемами информации, то может возникнуть нужда в их приятном представлении. Для этого можно использовать разные методы: таблицы, графики, диаграммы. Сегодня мы научимся, как добавлять в Android приложение диаграммы, используя библиотеку MPAndroidChart. Диаграммы этой библиотеки удобны, легки в настройке и даже интерактивны. 

Для того, чтобы использовать библиотеку MPAndroidChart для начала ее нужно скачать вот отсюда, а потом скопировать файл библиотеки в папку libs вашего проекта, нажать в Android Studio правым кликом мышки по файлу JAR библиотеки и выбрать Add as Library и подождать пока все добавится.

Перед тем, как данные можно будет использовать в построении диаграммы, их нужно преобразовать в объект DataSet. Разные виды диаграмм используют разные типы подклассов класса DataSet. Например, BarChart использует BarDataSet, а PieChart использует PieDataSet

Вместо того, чтобы создавать диаграмму с случайным набором чисел, представим такую гипотетическую ситуацию: есть два друга и один вечно наяривает другому по телефону, узнать как у того дела. Второй в свою очередь, решил стать настоящим исследователем, и записывает количество звонков от друга за каждый месяц. В нашем уроке мы возьмем да и используем записи второго друга для создания диаграммы, которая будет показывать, сколько раз один надоедливый друг звонил другому. 

Месяцы Количество звонков
Январь 4
Февраль 8
Март 6
Апрель 12
Май 18
Июнь 9

Для отображения данных в диаграмме нам необходимо создать пример BarDataSet. Следуя этими же шагами, можно создать любой другой подкласс DataSet. 

Каждое отдельное значение рядка с данными должно быть представлено как Entry. Для создания DataSet используется ArrayList с объектами Entry. Давайте создадим несколько DataSet объектов и добавим их в ArrayList:

ArrayList<BarEntry> entries = new ArrayList<>();
entries.add(new BarEntry(4f, 0));
entries.add(new BarEntry(8f, 1));
entries.add(new BarEntry(6f, 2));
entries.add(new BarEntry(12f, 3));
entries.add(new BarEntry(18f, 4));
entries.add(new BarEntry(9f, 5));

Теперь массив из Entry объектов готов и из него можно создать DataSet:

BarDataSet dataset = new BarDataSet(entries, "# of Calls");

Мы добавили несколько значений в нашу будущую диаграмму и теперь, с целью большей ясности того, что же изображает диаграмма, нужно присвоить осям диаграммы понятные названия. Каждое название по оси Х представим с помощью использования строк String и сохраним все значения в массиве ArrayList:

ArrayList<String> labels = new ArrayList<String>();
labels.add("Январь"); 
labels.add("Февраль"); 
labels.add("Март"); 
labels.add("Апрель"); 
labels.add("Май");
labels.add("Июнь");

Все диаграммы этой библиотеки являются подклассами ViewGroup, что значит то, что вы можете с легкостью добавлять их в любой layout. Вы можете определить свою диаграмму используя XML файл или java код. Если диаграмма будет появляться при запуске activity то проще использовать java код:

BarChart chart = new BarChart(context);
setContentView(chart);

Таким образом создается бланк диаграммы без какой либо информации в ней. Для занесения в диаграмму созданных нами выше данных делаем вот так:

BarData data = new BarData(labels, dataset);
chart.setData(data);

Давайте также добавим нашей диаграмме описание:

chart.setDescription("# of times friend1 called friend2");

Если вы сейчас запустите приложение, то должны увидеть созданную диаграмму. Эта диаграмма интерактивна и откликается на операцию увеличения/уменьшения и прикосновения.

Если вам не нравятся стандартные цвета то можно использовать метод setColors для смены цветовой темы. В библиотеке MPAndroidChart по умолчанию уже предоставляется несколько разных цветовых тем для диаграмм. Например, доступны вот такие шаблоны: 

ColorTemplate.LIBERTY_COLORS;
- ColorTemplate.COLORFUL_COLORS;
- ColorTemplate.JOYFUL_COLORS;
- ColorTemplate.PASTEL_COLORS;
- ColorTemplate.VORDIPLOM_COLORS.

Для соединения цветового шаблона с данными, используйте следующую команду:

dataset.setColors(ColorTemplate.COLORFUL_COLORS);

Запустите приложение и увидите, что его цветовая тема изменилась.

Все диаграммы в данной библиотеке поддерживают анимацию, что делает диаграммы более привлекательными и живыми. Для анимации обоих осей диаграммы используется метод animateXY. Если вы хотите применить анимацию только к одной с осей, то нужно использовать animateX или animateY для анимации Х или Y, соответственно. Когда вызывается метод анимации, нужно задать длительность анимации в миллисекундах. Например, чтобы добавить анимацию оси X, используем следующую команду:

chart.animateY(5000);

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

LimitLine line = new LimitLine(10f);
data.addLimitLine(line);

Библиотека MPAndroidChart дает пользователю возможность сохранять диаграмму как изображение. Для использования этой возможности, сначала нужно написать в манифесте разрешение на запись приложением файлов на SD карту. Чтобы это сделать открываем файл AndroidManifest.xml и добавляем туда строку:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

Далее можно выбирать один из двух методов:

saveToGallery - этот метод сохраняет диаграмму как JPEG изображение. Можно настраивать некоторые характеристики, типа качества сохраняемого изображения;

saveToPath - метод сохраняет диаграмму как PNG изображение, можно задать путь для сохранения файла.

Например, чтобы наша программа сохраняла диаграмму в формате JPEG, добавим это:

chart.saveToGallery("mychart.jpg", 85); // 85 это качество изображения

Ну что, на этом все. Смотрим на результат:

Диаграмма

Полный код файла MainActivity.java можно посмотреть по ссылке.

Мы научились основам работы с интересной популярной библиотекой для Android программирования под названием MPAndroidChart и теперь смело может использовать новые знания на практике. Удачи!

Категория: Уроки программирования | Просмотров: 708 | Добавил: Oleg | Теги: диаграмма, MPAndroidChart, программирование Android | Рейтинг: 0.0/0
Всего комментариев: 0
avatar