Главная » Добавляем в приложение диаграммы с помощью MPAndroidChart | ||||||||||||||
Если ваше приложение работает с большими объемами информации, то может возникнуть нужда в их приятном представлении. Для этого можно использовать разные методы: таблицы, графики, диаграммы. Сегодня мы научимся, как добавлять в Android приложение диаграммы, используя библиотеку MPAndroidChart. Диаграммы этой библиотеки удобны, легки в настройке и даже интерактивны. Для того, чтобы использовать библиотеку MPAndroidChart для начала ее нужно скачать вот отсюда, а потом скопировать файл библиотеки в папку libs вашего проекта, нажать в Android Studio правым кликом мышки по файлу JAR библиотеки и выбрать Add as Library и подождать пока все добавится. Перед тем, как данные можно будет использовать в построении диаграммы, их нужно преобразовать в объект DataSet. Разные виды диаграмм используют разные типы подклассов класса DataSet. Например, BarChart использует BarDataSet, а PieChart использует PieDataSet. Вместо того, чтобы создавать диаграмму с случайным набором чисел, представим такую гипотетическую ситуацию: есть два друга и один вечно наяривает другому по телефону, узнать как у того дела. Второй в свою очередь, решил стать настоящим исследователем, и записывает количество звонков от друга за каждый месяц. В нашем уроке мы возьмем да и используем записи второго друга для создания диаграммы, которая будет показывать, сколько раз один надоедливый друг звонил другому.
Для отображения данных в диаграмме нам необходимо создать пример 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; Для соединения цветового шаблона с данными, используйте следующую команду:
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 и теперь смело может использовать новые знания на практике. Удачи! | ||||||||||||||
|
Всего комментариев: 0 | |