Android:一起学会超好用图表控件 HelloCharts

/ 26评 / 0

写在前面

很早以前就想学习一些图表控件的实现,但一直被耽搁。现在毕设项目里有一个统计模块,所以不得不学了。找控件没花多大力气,不过确实在MPAndroidChartHelloCharts 之间犹豫了一会。不过简单对比来看,还是 HelloCharts 比较容易实现,也有很多可定义的模块/属性/效果。所以就选择了学习 HelloCharts

开源库:hellocharts-android

开发者:lecho

开源库开发者 lecho 给我们提供了一个 Sample 代码,同时也提供了一个 Google PlayAPP ,也可在豌豆荚进行下载。

我下载使用了一下,作者功能写的很丰富,但是好像还有很多新功能或效果没有加上。而且作者已经很久很久没有维护了,示例代码写的比较杂,注释也比较少,学起来比较费劲。

因为学习这种开源控件类的东西,最好的方式就是动手实现每一个属性/效果/功能。所以我就仿照他的 Demo ,自己也写了一个类似的 Demo ,刚刚写完了基本和高级的使用,也学会了如何使用它。

主要功能

为了方便还有其他人想学这个,我几乎全部重写了代码以及详细注释,如果还有想学习使用这个好用的图表控件的人,建议用我这个示例代码去学习,而且项目还在不断维护,实战应用场景也在添加中,一起去学如何在真正的项目中使用它。

此外,如果有同学学会并自己写了一个实战场景,那么

Welcome to Pull Requests !

必读说明

项目 Github 地址

后面文章中有很多动图,流量预警

功能介绍

基础图表

Line Chart:线状图

Line Chart

Column Chart:柱状图

Column Chart

Pie Chart:饼状图

Pie Chart

Bubble Chart:气泡图

Bubble Chart

高级图表

PreviewLine Chart:预览线状图

PreviewLine Chart

PreviewColumn Chart:预览柱状图

PreviewColumn Chart

ComboLineColumn Chart:线状柱状组合图

ComboLineColumn Chart

LineDependOnColumn Chart:线状依赖柱状图

LineDependOnColumn Chart

 

26条回应:“Android:一起学会超好用图表控件 HelloCharts”

  1. OoODeng说道:

    你好,我想请问一下有没有遇到X轴标签设置setHasTiltedLabels(false)水平显示,但是X轴的标签只显示偶数的,奇数的标签不显示,没办法显示全部的标签这种情况

  2. 唐山说道:

    预览功能,设置临时窗口大小,为啥高度设置不了呢?我的y轴数据是0.0几,这该怎么办?

  3. Amy说道:

    您的Demo没地儿可以下载啊

  4. zyz说道:

    GitHub上已经没有下载了,不知哪里可以下载demo

  5. Lyf说道:

    你好,你的github上下载不了你的代码吗?

  6. 八角说道:

    您好 ,非常感谢您的开源,我正在用这个做个项目,想问下,1:线图是否有区域点击事件,比如点击一个区域显示标签?2:是否有十字准线的功能?非常感谢

    • iamxiarui说道:

      @八角 你好,第一个是可以实现的,具体的 API 我忘记了,暂时在外面看不到代码,点击是可以显示标签的,你在 LineChart 中找一下。第二个我暂时不明白你的需求,是坐标轴网格么,如果是网格的话也是可以实现的,在 Axis 这个类中。

  7. 有个问题很尴尬,请求一下,当数据源值都为0的时候,柱形图完全没显示,左边的y轴也显示空白没有数值显示,看起来很不好,有什么解决办法吗

  8. 吴小白说道:

    您好,hellocharts可以用于动态的数据显示吗?我做的项目是每秒要更新温度和湿度的数据。

  9. 冀非翼说道:

    博主你好,我想实现一个X轴为时间的折线图,根据数据的时间来选定数据点的X坐标,比如当天的温度变化。不过我在源码中并没有找到相关的类,是不是没有这种实现?

    • @冀非翼 你好 我明白你的意思 这个时候你只需要直接把 X 轴的数据写成每小时或每几个小时就可以了 不用以数据定 X 轴 而是直接把 X 轴规定死 然后再设置点的坐标 这么说能理解么 我现在在手机端 暂时看不了代码

      • 冀非翼说道:

        @半夏的大大卷 比如数据的时间为 2016年11月14日19:22:55,而坐标上只有2016年11月14日19:00:00、2016年11月14日 20:00:00, 是不是就要自己写算法计算坐标?

        • @冀非翼 你的需求我看的不怎么明白 当你坐标轴已经确定了 那只需传入点坐标不就可以了 为什么需要算 虽然我知道你想算出22分占一个小时的几分之几 但是这样的话 何必把坐标轴定成整点数据 隔几个小时整点预报一下不就完了 我看了下主流的天气预报软件 都是整点数据 也就是隔几个小时预报一次 没必要 算出22分55秒是单位数轴(60分钟)的几分之几

          • 冀非翼说道:

            @半夏的大大卷 是我举的例子不好,我做的是监测室内温度的应用,需要显示大量数据,所以精确到了秒。

          • @冀非翼 啊 这样的话 可能就不太合适用 HelloCharts 了 你可以用非常高大上的 Android-Charts

          • 冀非翼说道:

            @半夏的大大卷 哦,这样啊,谢谢你的指引,我已经关注你了,有问题继续请教你

          • 吴小白说道:

            @冀非翼 你做的监测温度的项目做好了吗?用的那个图表库? 我也是做温湿度项目的,上一个项目是用的achartengine,但程序运行两天后卡,感觉消耗资源。所以现在的项目想用别的库。

          • 冀非翼说道:

            @吴小白 我四天前问了之后忙的一直没去查博主说的android-charts,这两天查查在答复你吧。个人觉得hellocharts就是没有表示时间的X轴的类这个对我来说比较大的问题,自定义的话应该可以实现,其他情况用hellochats挺好的。

  10. 歪文说道:

    哪里下载这个demo??

发表评论

电子邮件地址不会被公开。 必填项已用*标注