安卓自定义图表----柱状图
来源:互联网 发布:滴滴待遇 知乎 编辑:程序博客网 时间:2024/06/04 00:39
最近一直在做图表相关的开发,一些普通的图表使用achartengine都可以实现了,但是一些特殊的需求实现起来就比较麻烦了,比如类似小米手环的睡眠分布图
-
这种不定宽度,并且不是成对出现的图表数据用achartengine的柱状图在实现的时候会非常麻烦(也许是我没有找到很好的方法),因此自己实现了一个不固定宽度的图表库,效果图如下
部分代码如下:
protected void drawBar(Canvas canvas, float x, float y, float width, float height, Paint paint) { canvas.save(); paint.setStyle(Paint.Style.FILL); float left = x, right, top; tempX = (height - y) / 6; float bottom; ratioY = (width - left) / (float)srcData.length; Data data; int len = dataSet.size(); for (int i = 0; i < len; i++) { bottom = height - tempX; data = dataSet.get(i); paint.setColor(data.getColor()); right = left + ratioY * data.getY(); top = bottom - tempX * data.getX(); if (top > bottom) { bottom = top; top = bottom + tempX * data.getX(); } if (isEnableGap && i != (len - 1)) { right--; canvas.drawRect(left, top, right, bottom, paint); canvas.drawRect(right, bottom, right++, bottom, paint); } else { canvas.drawRect(left, top, right, bottom, paint); } left = right; } canvas.restore(); }
其中dataset存储需要显示的数据,这段代码的思想主要是通过将dataset中的相邻的Y轴相同的数据取出来,然后使用canvas.drawRect将这一部分的矩形画出来,其中涉及到设置矩形块的间隙,图表X轴的宽度计算,以及Y轴高度的计算,实现的功能比较简单,不过也算是满足使用要求了,并且在添加数据的时候非常方便
0 0
- 安卓自定义图表----柱状图
- 安卓开发入门之自定义柱状图
- 安卓自定义控件之不可滑动柱状图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 安卓图表引擎AChartEngine - 示例源码折线图、饼图和柱状图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 安卓图表引擎AChartEngine(三) - 示例源码折线图、饼图和柱状图
- 安卓柱状图的实现
- 安卓图表hellochart
- 安卓图表hellochart
- 安卓图表hellochart
- hellocharts图表插件---柱状图
- Service&BroadcastReceiver&Activity
- 直接拿来用!最火的Android开源项目(一)
- linux基本命令
- iOS 创建文件夹
- 弹出一个图片进度框
- 安卓自定义图表----柱状图
- Android设置EditText只能输入数字,不包含小数点
- [DFS]poj1416
- 个人PHP学习笔记(四)--数组
- js和Jquery获取选中select值和文本对比
- 贝叶斯滤波器解释
- Notification与多线程
- Linux系统只能连上内网不能够连上外网。Unit network.service entered failed state.
- 猫猫学iOS(四十五)之常用的小功能比如打电话、打开网址、发邮件、发短信打开其他应用。