Как следует из названия, AChartEngine — это библиотека графиков, которую можно использовать в приложениях для Android.
Он поддерживает все версии Android SDK от 1.6 и выше. Версия 1.6 предлагает только масштабирование на основе панорамирования и кнопок, в то время как в версии 2.1 и новее добавлена поддержка пинч-масштабирования, поскольку это стало доступно в Android SDK 2.x и новее. Некоторое время назад, когда AChartEngine прекратил поддержку более старых версий Android SDK, чем 2.1, многие пользователи просили об этом через пару дней после релиза. В то время, согласно официальному дистрибутиву платформы Android, доступному здесь , в мире по-прежнему оставалось около 5% устройств, работающих под управлением версий старше 2.x.
Добавление диаграмм в приложение Android с помощью AChartEngine так же просто, как добавление achartengine-xyzjar в путь к классам приложения и начало кодирования для его API. Текущая стабильная версия — 1.0.0, а разрабатываемая — 1.1.0. Размер файла jar составляет всего 110 КБ, что в настоящее время занимает совсем немного места. Тем не менее, AChartEngine предлагает поддержку для многих типов диаграмм.
Немного истории
В конце 2008 года разработчики Android уже искали библиотеки для построения графиков, графиков и графиков. В то время не было такого доступного решения с открытым исходным кодом.
Я начал оценивать Android в шутку и после разработки нескольких приложений для Android, которые нуждались в графике, я решил, что могу открыть код для построения графиков с открытым исходным кодом под названием AChartEngine. Версия 0.2.0 была запущена в марте 2009 года и стала первой библиотекой диаграмм с открытым исходным кодом для Android. В то время Android SDK был в версии 1.1.
Особенности
AChartEngine поддерживает три основных типа диаграмм:
- Диаграммы XY — отображать данные по 2 осям (линия, кубическая линия, площадь, столбец, разброс, пузырь, диапазон (максимум-минимум))
- Круглые диаграммы — пирог, пончик, циферблат
- Комбинированный график — может отображать комбинацию XY-графиков
Чтобы быстро просмотреть некоторые скриншоты демонстрационного приложения AChartEngine, посетите официальный веб-сайт и страницу Google Code AChartEngine.
Общий дизайн класса
На диаграмме ниже показано, как организованы классы, которые обрабатывают визуальную визуализацию диаграмм.
- Класс AbstractChart описывает поведение, общее для всех диаграмм, включая фон рисования, условные обозначения, заголовки,…
- Класс XYChart описывает состояние и поведение, общие для типов диаграмм XY, таких как отображение осей, меток,…
- RoundChart похож на XYChart, но для типов диаграмм, которые имеют круглую форму.
Компоненты дизайна
Весь дизайн не ограничен только визуальной частью. Есть еще несколько компонентов, способствующих общей картине.
- Модель — наборы данных / серии данных.
- Вид — описан выше.
- Renderers — помощь в настройке внешнего вида графиков (цвета, шрифты, оси, метки, форматирование,…).
- ChartFactory — получает экземпляр набора данных и экземпляр средства визуализации и возвращает нужную диаграмму, встроенную в намерение (для случая, когда диаграмма заполняет действие), или представление (когда диаграмма является частью действия, вместе с другие виджеты).
- Инструменты — инструменты взаимодействия для панорамирования и масштабирования.
Пример кода
Код ниже показывает простой пример того, как диаграмма может быть инициализирована и добавлена в действие. Декларация пакета и импорт были удалены для сохранения размера образца.
|
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
public class SampleChart extends Activity { private GraphicalView mChart; private XYMultipleSeriesDataset mDataset = new XYMultipleSeriesDataset(); private XYMultipleSeriesRenderer mRenderer = new XYMultipleSeriesRenderer(); private XYSeries mCurrentSeries; private XYSeriesRenderer mCurrentRenderer; private void initChart() { mCurrentSeries = new XYSeries('Sample Data'); mDataset.addSeries(mCurrentSeries); mCurrentRenderer = new XYSeriesRenderer(); mRenderer.addSeriesRenderer(mCurrentRenderer); } private void addSampleData() { mCurrentSeries.add(1, 2); mCurrentSeries.add(2, 3); mCurrentSeries.add(3, 2); mCurrentSeries.add(4, 5); mCurrentSeries.add(5, 4); } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } protected void onResume() { super.onResume(); LinearLayout layout = (LinearLayout) findViewById(R.id.chart); if (mChart == null) { initChart(); addSampleData(); mChart = ChartFactory.getCubeLineChartView(this, mDataset, mRenderer, 0.3f); layout.addView(mChart); } else { mChart.repaint(); } }} |
Чтобы приведенный выше пример работал, необходимо определить простой файл макета, который должен включать LinearLayout с android: id = ‘@ + id / chart’.
Приложения
Приложения всех типов используют AChartEngine для рендеринга графиков. Android-рынок appbrain.com утверждает, что 0,52% от общего числа опубликованных приложений (около 600 КБ) используют AChartEngine, а это означает, что более 3000 из них используют AChartEngine.
Список самых популярных приложений, использующих AChartEngine:
- MotoACTV — фитнес-инструмент, разработанный Motorola и предварительно установленный на их устройствах
- Зрители ЭКГ, приложения биологической безопасности
- Трекеры, фитнес, велосипедные приложения
- Финансы, бизнес-приложения
- Другие, …
Ресурсы
- Официальный сайт http://achartengine.org
- Веб-сайт Google Code, содержащий загружаемые jar, javadocs и демонстрационное приложение, трекер проблем и исходный код SVN http://code.google.com/p/achartengine
- Ищите «AChartEngine» на YouTube. Есть куча полезных видеоуроков.
- Просмотрите stackoverflow.com для поиска решений или размещения вопросов.
- Зарегистрируйтесь в группе Google AChartEngine и опубликуйте идеи.
- Посетите страницу AChartEngine в Facebook. Facebook.com/achartengine.
- Свяжитесь с нами по contact@achartengine.org
Авторы приветствуются
Вклад в проект с открытым исходным кодом может хорошо выглядеть в вашем резюме. AChartEngine — это проект с открытым исходным кодом, поэтому он является результатом усилий сообщества. Предлагаемый путь для участия в AChartEngine может быть:
- Извлеките исходный код из SVN и попытайтесь понять его.
- Посмотрите на открытые проблемы и попробуйте исправить некоторые из них. Когда закончите, предоставьте патчи.
- Спросите о правах коммиттера.
- Ответьте на вопросы на StackOverflow или других веб-сайтах.
Ссылка: AChartEngine — библиотека диаграмм для приложений Android от нашего партнера JCG Аттила-Михали Балаза в блоге Java Advent Calendar .