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


При разработке бизнес приложений программисты часто сталкиваются с необходимостью строить большое количество различных диаграмм и графиков. Конечно, все можно делать с нуля, вручную отрисовывая все необходимое, но зачем так мучатся, если есть неплохое бесплатное решение? Сегодня я хочу рассказать Вам об open source библиотеке AChartEngine, позволяющей создавать красивые графики и диаграммы для ваших отчетов. Приятно, что библиотека распространяется под весьма мягкой лицензией Apache Version 2, так что Вы вполне можете использоватьAChartEngineв своих коммерческих проектах.  

На сайте разработчика помимо самой библиотеки можно найти подробную документацию, офермленную в стиле Javadoc pages, примеры использования библиотеки, а также ее исходный код. В разделе Demo приводится несколько диаграмм и графиков, построенных средствами AChartEngine.

программирование диаграмм в android

Для построения диаграммы нужно выполнить несколько довольно простых шагов

  1. Перед использованием библиотеки вам нужно подключить ее к своему проекту в Eclipse. Для этого создайте где-нибудь папку для библиотеки и поместите туда jar файл. Теперь добавьте этот jar в свой project build path. После этого добавьте строку <activity android:name="org.achartengine.GraphicalActivity"/> в файл манифеста вашего проекта.
  2. Создайте и инициализируйте три массива. В первом будут содержаться цвета, во втором - подписи, в третьем - значения.
  3. Создайте объект CategorySeries и загрузите в него массивы строк с подписями и значения. При построении диаграмм будут использоваться именно эти данные.
  4. Создайте объект DefaultRenderer. CategorySeries и DefaultRenderer определены в библиотеке AChartEngine.
  5. Для каждого цвета в диаграмме создайте SimpleSeriesRenderer и установите его в этот цвет. Затем каждый SimpleSeriesRenderer добавьте в DefaultRenderer. Таким образом, имеем один Render на каждый Series. К слову, Render может включать другой Render, таким образом можно создавать подкатегории.
  6. Создайте объект PieChartIntent и передайте ему CategorySeries и DefaultRenderer.
  7. С помощью PieChartIntent можно показать диаграмму, как отдельную деятельность.


Ниже приводится исходный код, в котором реализованы все описанные выше шаги.

package com.example.bars;
 
import org.achartengine.ChartFactory;
import org.achartengine.chart.PieChart;
import org.achartengine.model.CategorySeries;
import org.achartengine.renderer.DefaultRenderer;
import org.achartengine.renderer.SimpleSeriesRenderer;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.app.Activity;
import android.os.Bundle;
 
publicclass MainActivityextends Activity{
 
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Intent intent= buildIntent();
startActivity(intent);// шаг 7
}
 
public Intent buildIntent(){
int[] values=new int[]{5,15,25,50,75};// шаг 2
String[] bars=new String[]{"Francesca's","King of Clubs",
"Zen Lounge","Tied House","Molly Magees"};
int[] colors=new int[]{ Color.BLUE, Color.GREEN, Color.MAGENTA,
Color.YELLOW, Color.CYAN};
 
CategorySeries series=new CategorySeries("Pie Chart");// шаг 3
DefaultRenderer dr=new DefaultRenderer();// шаг 4
 
for(int v=0; v<5; v++){// шаг 5
series.add(bars[v], values[v]);
SimpleSeriesRenderer r=new SimpleSeriesRenderer();
r.setColor(colors[v]);
dr.addSeriesRenderer(r);
}
dr.setZoomButtonsVisible(true);
dr.setZoomEnabled(true);
dr.setChartTitleTextSize(20);
return ChartFactory.getPieChartIntent(// шаг 6
this, series, dr,"Pie of bars");
}
 
}

Мы построили диаграмму PieChartIntent, однако подобным образом можно построить и другие виды графиков. Мне библиотека показалась довольно удобной и понятной. Ее можно использовать, если необходимо быстро разработать какое-нибудь бизнес-приложение со строгим дизайном.

Источники:Peter_vdL "Enterprise Grade Charts"
http://www.achartengine.org
Перевод:Александр Ледков





Наши соцсети

Подписаться Facebook Подписаться Вконтакте Подписаться Twitter Подписаться Google Подписаться Telegram

Популярное

Ссылки

Новости [1] [2] [3]... Android/ iOS/ J2ME[1] [2] [3]) Android / Архив

Рейтинг@Mail.ru Яндекс.Метрика
MobiLab.ru © 2005-2018
При использовании материалов сайта ссылка на www.mobilab.ru обязательна