• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > hellocharts-android-Android图表开源库的使用(二)

hellocharts-android-Android图表开源库的使用(二)

作者:weixin_38251977的博客 字体:[增加 减小] 来源:互联网 时间:2017-07-23

weixin_38251977的博客通过本文主要向大家介绍了android,hellocharts等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

之前的一篇文章介绍了hellocharts这个开源库的基本的使用方法(传送门:http://www.jianshu.com/p/dba47464fcfc ) ,今天,基于hellocharts我们来实现一个类似心电图的动态曲线的效果,先上效果图:

效果图.gif</div> </div>

Viewport

首先,开始代码前我们先来认识一下hellocharts重要的一个概念-Viewport,翻译我们可以知道,Viewport是视图,窗口的意思,在hellocharts中,一个Viewport由left,top,right,bottom四个点组成,可以看成是一个矩形范围。

模拟需求

假设,我们现在手机连接着一个硬件设备,每隔300ms,硬件就会传过来一条数据,要求客户以曲线的形式动态显示(如上面的效果图)。那么这个需求用hellocharts怎么实现呢?我们刚刚已经了解了Viewport,那么我们可不可以这样做呢:根据已有数据动态更新Viewport,形成曲线动态向左移动的效果。

代码实现

基本的代码基于上一遍文章的介绍,这里主要增加了一个定时器来不断增加数据,更新当前Viewport的显示。

定时器代码
timer.schedule(new TimerTask() {    
@Override    
public void run() {        
//实时添加新的点        
PointValue value1 = new PointValue(position * 5, random.nextInt(100) + 40);        
value1.setLabel("00:00");        
pointValueList.add(value1);        
float x = value1.getX();        
//根据新的点的集合画出新的线        
Line line = new Line(pointValueList);
line.setColor(Color.RED);
line.setShape(ValueShape.CIRCLE);        
line.setCubic(true);//曲线是否平滑,即是曲线还是折线linesList.clear(); 
linesList.add(line);        
lineChartData = initDatas(linesList); 
lineChartView.setLineChartData(lineChartData); 
//根据点的横坐实时变幻坐标的视图范围        
Viewport port;        
if (x > 50) {            
port = initViewPort(x - 50, x);        
} else {            
port = initViewPort(0, 50);       
 }       
lineChartView.setCurrentViewport(port);//当前窗口        
Viewport maPort = initMaxViewPort(x); 
lineChartView.setMaximumViewport(maPort);//最大窗口        
position++;    
}
}, 300, 300);
设置Viewport代码
/** 
* 当前显示区域 
* @param left 
* @param right 
* @return 
*
/
private Viewport initViewPort(float left, float right) {    
Viewport port = new Viewport();
port.top = 150;
port.bottom = 0;
port.left = left;
port.right = right;
return port;
}

/**
 * 最大显示区域 
 * @param right 
* @return 
*
/
private Viewport initMaxViewPort(float right) {    
Viewport port = new Viewport();
port.top = 150;
port.bottom = 0;
port.left = 0;
port.right = right + 50;
return port;
}

完整代码地址:https://github.com/SolveBugs/HelloChartDemo

</div> </div> </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android:手把手教你 实现Activity 与 Fragment 相互通信(含Demo)
  • android自定义圆角背景实现富文本标题展示
  • 自定义收集用户行为统计库 (非常方便 可以自己拓展)
  • Android 6.0 Phone"通话显示"查询流程
  • Android缓存处理
  • 自定义进度条PictureProgressBar——从开发到开源发布全过程
  • 详解Android中的SQLite数据库存储
  • Android设备上获取照片、裁剪图片、压缩图片
  • Android触摸事件分发机制完全解析《一》
  • Android-SQLite和SQLiteOpenHelper

相关文章

  • 2017-05-26ContentProvider中央档案馆,以及获取联系人电话的示例,contentprovider
  • 2017-05-26仿天天动听5应用项目源码,项目源码
  • 2017-05-26Android MediaPlayer 音乐播放
  • 2017-05-26Android中&quot;get&quot;,&quot;post&quot;请求的其中三种常用数据提交方式,android常用数据
  • 2017-05-26retrofit2中ssl的Trust anchor for certification path not found问题,retrofit2anchor
  • 2017-05-26Android 性能分析工具之 TraceView 使用说明
  • 2017-05-26Android 利用xUtils框架实现对sqllite的增删改查,xutilssqllite
  • 2017-05-228.3.2 绘图类实战示例
  • 2017-05-26Fragment,androidfragment
  • 2017-05-26Android 之 图片压缩

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 静态库和动态库的生成和加载详解
    • Android 仿当乐游戏详情页面(二)
    • android高仿京东垂直循环滚动新闻栏
    • Android热补丁动态修复技术(三)—— 使用Javassist注入字节码,完成热补丁框架雏形(可使用)
    • Android消息处理机制(Handler、Looper、MessageQueue与Message)
    • Android开发学习之路--网络编程之xml、json
    • android开发之路09(浅谈SQLite数据库01),androidsqlite
    • Android软件开发之SharedPreferences,sharedpreferences
    • andriod Spinner,andriodspinner
    • 如何判断设备是平板还是手机,判断设备平板手机

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有