[MD]模仿百度手机助手动态折线图
2015-12-25 23:01
357 查看
最近下了个百度手机助手,看到里面有很炫酷的折现图,效果是这样的:
于是我自己想尝试做一下动态折线图,这里 我使用的是 helloCharts 这个开源项目, 可以到git上下载相关代码:http://github.com/lecho/hellocharts-android
在布局文Activity_main,xml中添加LineChartView
在MainActivity.java中声明该View
接下去,就是对折线图的初始化
接下来是最重要的部分,怎样才能让我们的折线图动起来呢,其实我的想法很简单,就是折线一段一段的画出来,只要时间设置合理,利用人的视觉残留,就会有动起来的效果
这里,我们使用了定时任务,定时发送message更新UI
每100ms调用 updateChart 更新折线图
源码请点击这里下载
实际上,这个并不是百度手机管家上的UI效果,我只是起了个有绰头的名字而已,如果你晓得具体怎么做,请告诉我,不胜感激!~
参考资料
hellocharts-android开源图表库(效果非常好)
HelloCharts开源图表库(一)之折线图
于是我自己想尝试做一下动态折线图,这里 我使用的是 helloCharts 这个开源项目, 可以到git上下载相关代码:http://github.com/lecho/hellocharts-android
在布局文Activity_main,xml中添加LineChartView
<lecho.lib.hellocharts.view.LineChartView android:id="@+id/chart" android:layout_width="match_parent" android:layout_height="match_parent" />
在MainActivity.java中声明该View
mChart = (LineChartView)findViewById(R.id.chart);
接下去,就是对折线图的初始化
//设置缩放和平移 mChart.setInteractive(true); mChart.setZoomType(ZoomType.HORIZONTAL); mChart.setContainerScrollEnabled(true, ContainerScrollType.HORIZONTAL); mChart.setVisibility(View.VISIBLE); //X-Y Axis Configure axisX.setHasTiltedLabels(true); axisX.setTextColor(Color.GRAY); //设置X轴名称 axisX.setName("X-Axis"); //Update Axis Values axisX.setValues(mAxisValues); // 设置X轴和Y轴的位置 data.setAxisXBottom(axisX); data.setAxisYLeft(axisY);
接下来是最重要的部分,怎样才能让我们的折线图动起来呢,其实我的想法很简单,就是折线一段一段的画出来,只要时间设置合理,利用人的视觉残留,就会有动起来的效果
这里,我们使用了定时任务,定时发送message更新UI
mHandler = new Handler() { @Override public void handleMessage(Message msg) { updateChart(); super.handleMessage(msg); } }; mTimerTask = new TimerTask() { @Override public void run() { mHandler.sendEmptyMessage(1); } }; // set the timer to post the line chart timer.schedule(mTimerTask, 50, 100);
每100ms调用 updateChart 更新折线图
void updateChart() { if( mCount < 30) { //设置坐标值并加入值集合中 mPointValues.add(new PointValue(mCount, new Random().nextInt(10))); //设置坐标点提示文字并加入点集合中 mAxisValues.add(new AxisValue(mCount).setLabel(mCount+"")); mCount++; } else { //超过30个点移除message并取消定时器 mHandler.removeMessages(1); timer.cancel(); return; } //定义折线样式 Line line = new Line(mPointValues).setColor(Color.GREEN).setCubic(false); //加入折线集合中 lines.add(line); //设置折线图 data.setLines(lines); mChart.setLineChartData(data); }效果如下图
源码请点击这里下载
实际上,这个并不是百度手机管家上的UI效果,我只是起了个有绰头的名字而已,如果你晓得具体怎么做,请告诉我,不胜感激!~
参考资料
hellocharts-android开源图表库(效果非常好)
HelloCharts开源图表库(一)之折线图
相关文章推荐
- Android开源图表库:HelloCharts
- Android 图表开源框架HelloCharts 之 柱状图、折线图、饼状图,Fragment
- Android中使用HelloChart开源库图表来实现折线图
- [Android]HelloCharts实现动态加载数据
- HelloCharts 自定义X轴
- 【推荐系统算法】BPMF(Bayesian Probabilistic Matrix Factorization)
- json详解与介绍
- Android Fragment全解析+Fragment与Activity通信
- C# 控制台程序实现 Ctrl + V 粘贴功能
- 2015-12-25 第九天复习
- Oracle 11g RAC 二节点root.sh执行报错故障一例
- UDP主要丢包原因及具体问题分析
- tomcat、eclipse等一些问题
- 数据结构课程设计——通讯录管理系统
- 10个算法小结
- Spring依赖注入
- RSA加密解密(附源码工程)
- 从头开始swift2.0 仿乐乐医项目(六)Bmob云集成
- RSA加密解密(附源码工程)
- javascript之复习(某些坑和函数)