一个酷炫的Android图表制作框架
发布时间 - 2026-01-11 00:22:57 点击率:次一、概述

最近项目中需要制作柱形图以及折线图,所以便在网上搜索了一下这方面的开源框架,最后找到了这个酷炫的框架,不仅支持各种各样的图形制作,包括折线图、柱形图、饼状图等,而且提供了丰富的API接口,等着你去自定义,只要花点心思便能 DIY 出你心仪的图表类型,使用起来也是相当的简单。
从效果图可以看到,这个框架是相当酷炫的啊,在这里附上该框架的github地址hellocharts-android,有兴趣的不妨去 star 一下
二、炫酷的柱形图
可以看到柱形图也是能玩出花样来的,绚丽的色彩,自定义的横纵轴单位以及灵活的数值变化,无疑是相当吸引眼球的,就让我们来看看怎么实现这些效果吧
1、最常见的柱形图
因为这个框架中各式各样的效果实在太多,如果全部都写的话,一篇博客实在是写不了,所以就通过实现一个常见的柱形图,以点带面,希望能对大家掌握这个框架的使用有一定的帮助。
(1) 布局的实现
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingRight="20dp"
>
<lecho.lib.hellocharts.view.ColumnChartView
android:id="@+id/column_chart_cc"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_gravity="center"
android:layout_centerInParent="true"
/>
</RelativeLayout>
可以看到直接将我们需要的控件放在我们想要的位置就行了,我们要实现的是柱形图,对应的便是ColumnChartView,这里附上一份控件对应的效果
(2) Activity中主要的代码
public class ColumnChartActivity extends AppCompatActivity {
private ColumnChartView mColumnChartCc;
private ColumnChartData data; // 柱形图对应的各种属性
private boolean hasAxes = true; // 是否要添加横纵轴的属性
private boolean hasAxesNames = true; // 是否设置横纵轴的名字
private boolean hasLabels = false; // 是否显示柱形图的数据
private boolean hasLabelForSelected = false; // 是否点中显示数据
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_column);
mColumnChartCc = (ColumnChartView) findViewById(R.id.column_chart_cc);
mColumnChartCc.setOnValueTouchListener(new ValueTouchListener());
generateSubcolumnsData();
}
private void generateSubcolumnsData() {
int numSubcolumns = 1;
int numColumns = 4; // 表示总共有四根柱子
List<Column> columns = new ArrayList<Column>();
List<SubcolumnValue> values; // 柱子的属性
List<AxisValue> axisValueList = new ArrayList<>();
Float[] floats = {30f, 5f, 50f, 15f}; // 包含柱形图的数值的数组
String[] selecedNames = {"选项一", "选项二", "选项三", "选项四"}; // 包含柱子的名称的数组
for (int i = 0; i < numColumns; ++i) {
values = new ArrayList<SubcolumnValue>();
values.add(new SubcolumnValue(floats[i], ChartUtils.pickColor())); // 将柱子的数据以及颜色设置给 SubcolumnValue
axisValueList.add(new AxisValue(i).setLabel(selecedNames[i]));
Column column = new Column(values); // 设置整根柱子的属性
column.setHasLabels(hasLabels); // 是否显示柱子的数据
column.setHasLabelsOnlyForSelected(hasLabelForSelected); // 是否选中显示数据,一般为false
columns.add(column);
}
data = new ColumnChartData(columns);
data.setAxisXBottom(new Axis(axisValueList)); // 设置 Y 轴的属性
data.setAxisYLeft(new Axis()); // 设置 X 轴的属性
mColumnChartCc.setColumnChartData(data); // 将数据设置给显示柱形图的控件
}
}
先定义一些我们后面需要用到的属性,在onCreate进行布局的初始化,可以看到我们想要实现的效果都封装在 generateSubcolumnsData 这个方法中,这个方法主要实现了这几个方面的设置
- 先设定我们总共要多少根柱子
- 通过遍历,将各根柱子的数值、颜色以及对应的名称进行设置
- 最后设置横纵轴的数值以及名称
除了以上操作之外,还有其他比较好看的效果,比如双击放大柱形图、设置网状的背景、点击柱子跳出我们想要显示的内容,这些我们都可以方便地进行定义
(3) 比较常用的API和属性
以上便是这篇博客的所有内容,最后附上柱形图的源代码HelloChartDemo,有兴趣的可以去下载,如果觉得对你有点帮助的话,就赏个star吧。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# 图表
# 框架
# android Activity线性布局和表格布局实例讲解
# android 线性布局LinearLayout实例代码
# Android UI组件LinearLayout线性布局详解
# Android布局之LinearLayout线性布局
# Android RecyclerView线性布局详解(1)
# Android 百分比布局详解及实例代码
# Android自定义View圆形百分比控件(一)
# Android中使用achartengine生成图表的具体方法
# Android实现轻量线性与百分比图表的方法
# 纵轴
# 可以看到
# 有兴趣
# 自定义
# 的是
# 酷炫
# 在这里
# 以点带面
# 放在
# 太多
# 遍历
# 折线图
# 对你
# 有一定
# 等着
# 博客
# 你去
# 来看看
# 双击
# 要多
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
PHP 500报错的快速解决方法
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
公司网站制作需要多少钱,找人做公司网站需要多少钱?
Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程
Python文件流缓冲机制_IO性能解析【教程】
如何在云主机快速搭建网站站点?
Laravel Admin后台管理框架推荐_Laravel快速开发后台工具
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
javascript基于原型链的继承及call和apply函数用法分析
中山网站推广排名,中山信息港登录入口?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
如何续费美橙建站之星域名及服务?
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
如何快速查询域名建站关键信息?
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程
Bootstrap整体框架之JavaScript插件架构
如何使用 jQuery 正确渲染 Instagram 风格的标签列表
高防服务器租用如何选择配置与防御等级?
Laravel怎么连接多个数据库_Laravel多数据库连接配置
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
Laravel如何记录自定义日志?(Log频道配置)
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
,南京靠谱的征婚网站?
php增删改查怎么学_零基础入门php数据库操作必知基础【教程】
简单实现Android文件上传
JavaScript如何实现类型判断_typeof和instanceof有什么区别
Laravel如何连接多个数据库_Laravel多数据库连接配置与切换教程
laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法
php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
php 三元运算符实例详细介绍
开心动漫网站制作软件下载,十分开心动画为何停播?
如何在IIS7中新建站点?详细步骤解析
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
Laravel怎么实现模型属性的自动加密
智能起名网站制作软件有哪些,制作logo的软件?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何自定义建站之星模板颜色并下载新样式?
linux top下的 minerd 木马清除方法
如何实现javascript表单验证_正则表达式有哪些实用技巧
Python数据仓库与ETL构建实战_Airflow调度流程详解
Android okhttputils现在进度显示实例代码
如何在云主机上快速搭建多站点网站?
高端建站如何打造兼具美学与转化的品牌官网?
Laravel的.env文件有什么用_Laravel环境变量配置与管理详解
uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址

