AAChartCore
Java
объектно-ориентированной библиотеки AAChartKit, представляющая собой набор удобных в использовании, крайне элегантных графических средств отрисовки, основанных на популярной открытой библиотеке фронтенд-графиков Highcharts. Она позволяет очень быстро добавлять интерактивные графики в ваши мобильные проекты. Поддерживает однонажатийное сжатие данных, многопальцевое масштабирование и продвинутую отзывчивость для ваших приложений.***Android
, Kotlin
и Java
.column chart
), гистограмм (bar chart
), областных диаграмм (area chart
), сплайновых областных диаграмм (areaspline chart
), линейных диаграмм (line chart
), сплайн-диаграмм (spline chart
), радара (radar chart
), полярной диаграммы (polar chart
), круговых диаграмм (pie chart
), пузырьковых диаграмм (bubble chart
), пирамидальных диаграмм (pyramid chart
), конусных диаграмм (funnel chart
) и других типов графиков.AAChartView + AAChartModel = График
В фреймворке AAChartCore используется минималистичная формула: Графический вид + Графическая модель = Желаемый график
. Также, как мощные фреймворки для графиков AAChartKit, AAChartKit-Swift, AAChartCore-Kotlin.***Скачайте весь проект демонстрационной версии AAChartCore
.
Переместите папку AAChartCoreLib
и файлы ассетов в ваш проект.## Использование
Создайте экземпляр объекта диаграммы: AAChartView
<AAChartCore.AAChartConfiger.AAChartView
android:id="@+id/AAChartView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
aaChartView = findViewById(R.id.AAChartView);
AAChartModel
AAChartModel aaChartModel = new AAChartModel()
.chartType(AAChartType.Area)
.title("ТЕПЛО ПРОГРАММИРОВАНИЯ ЯЗЫКОВ")
.subtitle("Виртуальные данные")
.backgroundColor("#4b2b7f")
.categories(new String[]{"Java", "Swift", "Python", "Ruby", "PHP", "Go", "C", "C#", "C++"})
.dataLabelsEnabled(false)
.yAxisGridLineWidth(0f)
.series(new AASeriesElement[]{
new AASeriesElement()
.name("Токио")
.data(new Object[]{7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6}),
new AASeriesElement()
.name("Нью-Йорк")
.data(new Object[]{0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5}),
new AASeriesElement()
.name("Лондон")
.data(new Object[]{0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0}),
new AASeriesElement()
.name("Берлин")
.data(new Object[]{3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8})
});
AAChartView
). // Объект диаграммы вызывает экземпляр объекта AAChartModel и рисует окончательную графику
aaChartView.aa_drawChartWithChartModel(aaChartModel);
🌹🌹🌹Поздравляем вас! Все сделано!!! Вы получили то, что хотели!!!### Обновление содержимого диаграммы Если вы хотите обновить содержимое диаграммы, вам следует выполнить следующие действия. В зависимости от ваших реальных потребностей выберите подходящую функцию.* Только обновить данные серии диаграммы (этот метод рекомендован для динамического обновления данных серий).
// Обновляем только данные серий диаграммы
aaChartView.aa_onlyRefreshTheChartDataWithChartModelSeries(chartModelSeriesArray);
aa_onlyRefreshTheChartDataWithChartModelSeries
). // Обновляем полное содержимое диаграммы после обновления AAChartModel
aaChartView.aa_refreshChartWholeContentWithChartModel(aaChartModel);
- ### Полярная диаграмма
- Примечание: следующее
экранное изображение DEMO
являетсяанимированной GIF-картинкой
, размер которой составляет около 6 МБ. Если вы не видите анимацию, это может быть связано с тем, что изображения ещё не полностью загружены. В таком случае будьте терпеливы и подождите завершения загрузки содержимого. Возможно, вам потребуется перезагрузить страницу.![]()
Вы можете отслеживать сообщения событий нажатия пользователя, реализуя метод делегата для объекта AAChartView:
public interface AAChartViewCallback {
void chartViewMoveOverEventMessage(AAChartView aaChartView, AAMoveOverEventMessageModel messageModel);
}
Полученные сообщения событий включают следующие данные:
public class AAMoveOverEventMessageModel {
public String name;
public Double x;
public Double y;
public String category;
public LinkedTreeMap offset;
public Double index;
}
AATooltip
через JavaScript-функциюКак известно, AAInfographics поддерживают использование строк HTML. Большинство случаев требуют лишь строки headerFormat
, pointFormat
и footerFormat
для кастомизации содержимого подсказок графиков. Однако иногда требования мобильных приложений могут быть слишком специфичными, и тогда можно даже кастомизировать стиль подсказок графика через JavaScript-функцию.Например, конфигурация свойств экземпляра объекта AATooltip может выглядеть следующим образом:
AATooltip aaTooltip = new AATooltip()
.useHTML(true)
.formatter("function() { \n" +
"return '🌕🌖🌗🌘🌑🌒🌓🌔<br/>' \n" +
"+ 'Поддерживает JavaScript-функцию прямо сейчас!!!<br/>' \n" +
"+ 'Цена золота за <b>2020 год</b> составляет <b>}' \n" +
"+ this.x \n" +
"+ '<b>/</b> долларов <b>}' \n" +
"+ this.y \n" +
"+ '<b></b>'; \n" +
"}")
.valueDecimals(2)
.backgroundColor("#000000")
.borderColor("#000000")
.style(new AAStyle()
.color("#FFD700")
.fontSize("12 px")
);
Вы можете получить кастомизированное стилизованные подсказки в виде диаграммы вот так👇
### Поддержка сегментации диапазона значений
диаграмма с сегментацией диапазона значений полосами 🎀
диаграмма с сегментацией диапазона значений линиями 🧶
public interface AAChartType {
String Column = "column";
String Bar = "bar";
String Area = "area";
String AreaSpline = "areaspline";
String Line = "line";
String Spline = "spline";
String Scatter = "scatter";
String Pie = "pie";
String Bubble = "bubble";
String Pyramid = "pyramid";
String Funnel = "funnel";
String Columnrange = "columnrange";
String Arearange = "arearange";
String Areasplinerange = "areasplinerange";
String Boxplot = "boxplot";
String Waterfall = "waterfall";
}
public interface AAChartZoomType {
String X = "x";
String Y = "y";
String XY = "xy";
}
```### Поддерживаемые типы анимации на данный момент```java
public interface AAChartAnimationType {
String EaseInQuad = "EaseInQuad";
String EaseOutQuad = "EaseOutQuad";
String EaseInOutQuad = "EaseInOutQuad";
String EaseInCubic = "EaseInCubic";
String EaseOutCubic = "EaseOutCubic";
String EaseInOutCubic = "EaseInOutCubic";
String EaseInQuart = "EaseInQuart";
String EaseOutQuart = "EaseOutQuart";
String EaseInOutQuart = "EaseInOutQuart";
String EaseInQuint = "EaseInQuint";
String EaseOutQuint = "EaseOutQuint";
String EaseInOutQuint = "EaseInOutQuint";
String EaseInSine = "EaseInSine";
String EaseOutSine = "EaseOutSine";
String EaseInOutSine = "EaseInOutSine";
String EaseInExpo = "EaseInExpo";
String EaseOutExpo = "EaseOutExpo";
String EaseInOutExpo = "EaseInOutExpo";
String EaseInCirc = "EaseInCirc";
String EaseOutCirc = "EaseOutCirc";
String EaseInOutCirc = "EaseInOutCirc";
String EaseOutBounce = "EaseOutBounce";
String EaseInBack = "EaseInBack";
String EaseOutBack = "EaseOutBack";
String EaseInOutBack = "EaseInOutBack";
String Elastic = "Elastic";
String SwingFromTo = "SwingFromTo";
String SwingFrom = "SwingFrom";
String SwingTo = "SwingTo";
String Bounce = "Bounce";
String BouncePast = "BouncePast";
String EaseFromTo = "EaseFromTo";
String EaseFrom = "EaseFrom";
String EaseTo = "EaseTo";
}
Здесь представлены различные типы анимации для AAInfographics.| Назад | Прыжок | Круг | Кубический | Упругий | |:----------:|:---------:|:---------:|:----------:|:---------:| | ![][1] | ![][2] | ![][3] | ![][4] | ![][5] |
Экспоненциальный | Квадратичный | Четвертый | Пятый | Гармонический |
---|---|---|---|---|
![][6] | ![][7] | ![][8] | ![][9] | ![][10] |
------------------|----------|-------------------|
title | Название графика | Любая допустимая строка |
subtitle | Подзаголовок графика | Любая допустимая строка |
chartType | По умолчанию тип серии для графика. Может быть любым из типов графиков, указанных в AAChartType
| AAChartType.Column,
AAChartType.Bar,
AAChartType.Area,
AAChartType.AreaSpline,
AAChartType.Line,
AAChartType.Spline,
AAChartType.Pie,
AAChartType.Bubble,
AAChartType.Scatter,
AAChartType.Pyramid,
AAChartType.Funnel,
AAChartType.Arearange,
AAChartType.Columnrange |
stacking | Отображение значений каждой серии друг на друге. Возможные значения: null — отключено, "normal" — сложение по значению, "percent" — сложение по процентам. При активированной группировке данные должны быть отсортированы по возрастанию X координат | AAChartStackingType.None,
AAChartStackingType.Normal,
AAChartStackingType.Percent |
symbol | Предопределённая форма или символ маркера. Когда значение null, символ берётся из options.symbols
. Другие возможные значения: "circle", "square", "diamond", "triangle" и "triangle-down" | AAChartSymbolType.Circle,
AAChartSymbolType.Square,
AAChartSymbolType.Diamond,
AAChartSymbolType.Triangle,
AAChartSymbolType.TriangleDown |
colorsTheme | Цветовая тема графика | Значение по умолчанию: new String[] {"#fe117c", "#ffc069", "#06caf4", "#7dffc0"}
|
series | Данные серий графика | Список объектов типа AASeriesElement, каждый из которых имеет свои значения типа, имени, данных, цвета и прозрачности |
public String animationType;
public Integer animationDuration;
``````java
public String title;
public String subtitle;
public String chartType;
public String stacking;
public String symbol;
public String symbolStyle;
public String zoomType;
public boolean pointHollow;
public boolean inverted;
public boolean xAxisReversed;
public boolean yAxisReversed;
public boolean tooltipEnabled;
public String tooltipValueSuffix;
public boolean tooltipCrosshairs;
public boolean gradientColorEnable;
public boolean polar;
public float marginLeft;
public float marginRight;
public boolean dataLabelEnabled;
public boolean xAxisLabelsEnabled;
public String[] categories;
public int xAxisGridLineWidth;
public boolean xAxisVisible;
public boolean yAxisVisible;
public boolean yAxisLabelsEnabled;
public String yAxisTitle;
public float yAxisLineWidth;
public int y_axis_grid_line_width;
public Object[] theme_color_set;
public boolean legend_enabled;
public String legend_position;
public String legend_alignment;
public String vertical_legend_alignment;
public String background_color;
public boolean options_3d_enabled;
public int alpha_angle_options_3d;
public int beta_angle_options_3d;
public int depth_options_3d;
public int edge_radius;
public int marker_radius;
public AASeriesElement[] series;
public String header_color;
public String subheader_color;
public String axis_color;
```## Создано
Ан Ан
```java
"КОД НЕ ДАЛЕК ОТ БУГ С УЧАСТИЕМ ЖИВОТНОГО"
* ##2 ##2
* ┏-##1 ┏-##1
* ┏_┛ ┻---━┛_┻━━┓
* ┃ ┃
* ┃ ━ ┃
* ┃ @^ @^ ┃
* ┃ ┃
* ┃ ┻ ┃
* ┃_ _┃
* ┗━┓ ┏━┛
* ┃ ┃животное защита
* ┃ ┃никогда нет ошибок!
* ┃ ┗━━━┓----|
* ┃ ┣┓}}
* ┃ ┏┛
* ┗┓&&&┓-┏&&&┓┏┛-|
* ┃┫┫ ┃┫┫
* ┗┻┛ ┗┻┛
*
*
"КОД НЕ ДАЛЕК ОТ БУГ С УЧАСТИЕМ ЖИВОТНОГО"
Язык Версия | Проект | Целевой Платформа | Исходный Код Ссылка |
---|---|---|---|
Kotlin | AAInfographics | Android | https://github.com/AAchartmodel/AAChartkit-kotlin |
Java | AAChartCore | Android | https://github.com/AAchartmodel/AAChartkit |
Swift | AAInfographics | iOS | https://github.com/AAchartmodel/AAChartkit-swift |
Objective-C | AAChartKit | iOS | https://github.com/AAchartmodel/AAChartkit |
AAInfographics доступен под лицензией MIT. Подробнее см. файл ЛИЦЕНЗИЯ.
- [x] Поддержка динамической перезагрузки глобального содержимого графика
- [x] Поддержка динамической перезагрузки чистых данных (`series`)
- [x] Поддержка градиентных эффектов цветового слоя
- [x] Поддержка горизонтальной ориентации экрана (полный экран)
- [x] Поддержка свободной настройки анимации отрисовки графиков
- [x] Поддержка свободной настройки свойств объекта модели `AAOptions`
- [x] Поддержка накладывания графиков друг на друга
- [x] Поддержка обратной оси графика
- [x] Поддержка отображения рассеянного графика
- [x] Поддержка отображения карты диапазона столбцов
- [x] Поддержка отображения графика области диапазона
- [x] Поддержка отображения полярного графика
- [x] Поддержка отображения линейного графика с шагами
- [x] Поддержка отображения облачного графика с шагами
- [ ] Поддержка отображения диаграмм иерархии прямоугольников
- [ ] Поддержка отображения круговой диаграммы прогресса
- [ ] Поддержка добавления обратных вызовов событий кликов по графикам
- [ ] Поддержка реального времени обновления чистых данных графиков и динамического прокрутки
- [ ] Поддержка создания изображений файлов отрендеренного графика
- [ ] Поддержка сохранения созданных изображений файлов в системную галерею[1]: https://raw.githubusercontent.com/adad184/MMTweenAnimation/master/Images/1.gif
[2]: https://raw.githubusercontent.com/com/adad184/MMTweenAnimation/master/Images/2.gif
[3]: https://raw.githubusercontent.com/adad184/MMTweenAnimation/master/Images/3.gif
[4]: https://raw.githubusercontent.com/adad184/MMTweenAnimation/master/Images/4.gif
[5]: https://raw.githubusercontent.com/adad184/MMTweenAnimation/master/Images/5.gif
[6]: https://raw.githubusercontent.com/adad184/MMTweenAnimation/master/Images/6.gif
[7]: https://raw.githubusercontent.com/adad184/MMTweenAnimation/master/Images/7.gif
[8]: https://raw.githubusercontent.com/adad184/MMTweenAnimation/master/Images/8.gif
[9]: https://raw.githubusercontent.com/adad184/MMTweenAnimation/master/Images/9.gif
[10]: https://raw.githubusercontent.com/adad184/MMTweenAnimation/master/Images/10.gif
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )