Как быстро реализовать красивые диаграммы в приложении для Android

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

Зачем и где использовать диаграммы?

Графики стали чрезвычайно популярным элементом современного дизайна пользовательского интерфейса в мобильных приложениях. Есть много способов использовать их в своем приложении, и есть еще больше способов сделать свои диаграммы гладкими и красивыми.

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

  • Визуальный. Согласно многочисленным исследованиям, люди воспринимают визуальную информацию намного лучше, чем любую другую информацию. Например, исследование ученых из Университета Миннесоты показало, что люди обрабатывают визуальные эффекты в 60 000 раз быстрее, чем текст. Это означает, что добавление диаграммы в ваше мобильное приложение сделает информацию более понятной и, следовательно, улучшит взаимодействие с пользователем.
  • Оптимизация места. Диаграмма также может быть компактным способом представления информации. Вместо использования таблиц просто внедрите диаграммы и освободите место на экране.

Вы можете использовать диаграммы для отображения большого количества информации. Например, Apple использует диаграммы в Apple Watch для отображения фитнес-информации.

Вы также можете использовать диаграммы в банковском приложении или приложении для управления личными финансами, чтобы отображать расходы и доход:

Графики можно использовать в приложениях для мобильной аналитики и маркетинга:

И есть бесчисленное множество случаев, когда вы можете использовать диаграммы в своем мобильном приложении. Эти типы приложений часто используют диаграммы:

  • Банковское дело и личные финансы
  • Фитнес и питание
  • Аналитика
  • Логистика
  • Социальные медиа
  • Управление батареей
  • Тайм-менеджмент
  • Интернет вещей
  • Бизнес и менеджмент

Вы можете найти множество творческих способов использования диаграмм и в других типах мобильных приложений.

Теперь давайте поговорим о том, как реализовать диаграмму в мобильном приложении и не тратить на нее много времени на разработку.

Простое решение для вашего приложения

Создание диаграммы с использованием графики может занять много времени, продлить разработку и увеличить затраты. Чтобы избежать этого, вы можете использовать библиотеку с открытым исходным кодом для создания диаграмм. В сети их уже много, и вы можете выбрать любой. В этой статье мы рассмотрим MPAndroidChart от Фила Джея. Это новинка по сравнению с другими библиотеками диаграмм, и мне она нравится, потому что она стабильна. Со мной согласны более 3000 пользователей GitHub. С помощью этой библиотеки вы можете без особых усилий создавать различные виды настраиваемых диаграмм. Вы также можете добавлять анимации и настраивать их.

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

Библиотека MPAndroidChart

Все, что вам нужно знать о MPAndroidChart, - это то, что это один из самых простых способов добавления диаграмм в ваше приложение и что он работает с Android API 8 и выше. Если вы хотите использовать анимацию, вам понадобится API 11 или выше.

Анимации - это ключевой элемент пользовательского интерфейса современных мобильных приложений, поэтому очень приятно иметь их в этой библиотеке. Вы найдете более 25 встроенных анимаций, но если вам нужно что-то особенное, вы также можете добавить собственные. Так что же можно построить с помощью MPAndroidChart?

  • Простая гистограмма
  • Сгруппированная линейчатая диаграмма
  • Горизонтальная гистограмма
  • Простая линейная диаграмма
  • График с кубическими линиями
  • Сгруппированная линейная диаграмма
  • Комбинированная линейная и гистограмма
  • Круговая диаграмма
  • Точечная диаграмма
  • Свечной график
  • Радарная диаграмма

В этом уроке мы построим сгруппированную линейчатую диаграмму с анимацией, подобную показанной здесь:

Как шаг за шагом интегрировать анимированный график

Шаг 1

Для начала добавьте эти строки в свой файл gradle:

build.gradle (app)
repositories {
    maven { url "https://jitpack.io" }
}
dependencies {
    implementation 'com.github.PhilJay:MPAndroidChart:v3.0.3'
}

Шаг 2

Создайте макет для вашего MPAndroidChart:

activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context=".MainActivity">
 
    <com.github.mikephil.charting.charts.BarChart
        android:id="@+id/chart"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
 
</RelativeLayout>

Как вы можете видеть на приведенном выше макете, я использовал тег com.github.mikephil.charting.charts.BarChart xml для создания гистограммы Android.

Шаг 3

Теперь посмотрим на код активности:

MainActivity.java
Java

package com.truiton.mpchartexample;
 
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
 
import com.github.mikephil.charting.charts.BarChart;
import com.github.mikephil.charting.data.BarData;
import com.github.mikephil.charting.data.BarDataSet;
import com.github.mikephil.charting.data.BarEntry;
import com.github.mikephil.charting.utils.ColorTemplate;
 
import java.util.ArrayList;
 
public class MainActivity extends ActionBarActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        BarChart chart = (BarChart) findViewById(R.id.chart);
 
        BarData data = new BarData(getXAxisValues(), getDataSet());
        chart.setData(data);
        chart.setDescription("My Chart");
        chart.animateXY(2000, 2000);
        chart.invalidate();
    }
 
    private ArrayList getDataSet() {
        ArrayList dataSets = null;
 
        ArrayList valueSet1 = new ArrayList();
        BarEntry v1e1 = new BarEntry(110.000f, 0); // Jan
        valueSet1.add(v1e1);
        BarEntry v1e2 = new BarEntry(40.000f, 1); // Feb
        valueSet1.add(v1e2);
        BarEntry v1e3 = new BarEntry(60.000f, 2); // Mar
        valueSet1.add(v1e3);
        BarEntry v1e4 = new BarEntry(30.000f, 3); // Apr
        valueSet1.add(v1e4);
        BarEntry v1e5 = new BarEntry(90.000f, 4); // May
        valueSet1.add(v1e5);
        BarEntry v1e6 = new BarEntry(100.000f, 5); // Jun
        valueSet1.add(v1e6);
 
        ArrayList valueSet2 = new ArrayList();
        BarEntry v2e1 = new BarEntry(150.000f, 0); // Jan
        valueSet2.add(v2e1);
        BarEntry v2e2 = new BarEntry(90.000f, 1); // Feb
        valueSet2.add(v2e2);
        BarEntry v2e3 = new BarEntry(120.000f, 2); // Mar
        valueSet2.add(v2e3);
        BarEntry v2e4 = new BarEntry(60.000f, 3); // Apr
        valueSet2.add(v2e4);
        BarEntry v2e5 = new BarEntry(20.000f, 4); // May
        valueSet2.add(v2e5);
        BarEntry v2e6 = new BarEntry(80.000f, 5); // Jun
        valueSet2.add(v2e6);
 
        BarDataSet barDataSet1 = new BarDataSet(valueSet1, "Brand 1");
        barDataSet1.setColor(Color.rgb(0, 155, 0));
        BarDataSet barDataSet2 = new BarDataSet(valueSet2, "Brand 2");
        barDataSet2.setColors(ColorTemplate.COLORFUL_COLORS);
 
        dataSets = new ArrayList();
        dataSets.add(barDataSet1);
        dataSets.add(barDataSet2);
        return dataSets;
    }
 
    private ArrayList getXAxisValues() {
        ArrayList xAxis = new ArrayList();
        xAxis.add("JAN");
        xAxis.add("FEB");
        xAxis.add("MAR");
        xAxis.add("APR");
        xAxis.add("MAY");
        xAxis.add("JUN");
        return xAxis;
    }
}

В результате получится такая великолепно выглядящая гистограмма:

Позвольте мне объяснить, как работает библиотека MPAndroidChart. Как показано в классе выше, сначала инициализируется BarChart. Затем данные генерируются в соответствии с гистограммой с помощью класса BarEntry. Это подкласс класса Entry, который является базовым классом для всех типов данных диаграммы в библиотеке MPAndroidChart.
Кроме того, этот BarEntry добавляется в BarDataSet. Затем все эти значения вместе со значениями оси X устанавливаются на гистограмме с помощью метода chart.setData (data). Теперь, чтобы гистограмма отражала эти последние данные, нам нужно вызвать метод chart.invalidate (). В результате получится великолепно выглядящая гистограмма, показанная выше.

Как я уже упоминал, библиотеку MPAndroidChart можно настраивать. Давайте посмотрим на некоторые из его ключевых особенностей.

MPAndroidChart анимации

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

  • chart.animateX (2000) - для анимации по оси X
  • chart.animateY (2000) - для анимации по оси Y
  • chart.animateXY (2000, 2000) - для анимации по оси XY.

Приведенный выше код добавит стандартную анимацию. Но если вы хотите изменить стиль анимации или создать собственную анимацию, обратитесь к этой странице. Обратите внимание, что анимация будет работать только с API 11 и выше.

Цвета MPAndroidChart

При создании диаграмм на Android с помощью библиотеки MPAndroidChart вы также можете изменить цвет полос на диаграмме, используя следующие методы:

  • setColor - используется для установки одного цвета для всего набора данных.
  • setColors - используется для выделения записей разным цветом в наборе данных.

Эти методы используются при создании объекта DataSet, показанного выше.

Заключение

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

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

Получите бесплатную консультацию!
[email protected]

Https://www.mobindustry.net/how-to-quickly-implement-beautiful-charts-in-your-android-app/