- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android 自定义控件-体温走势图
声明:本文只介绍开发思路,并不提供完整的源代码,若说的有不对之处,还请各位看官见谅!
本人菜鸟一枚,以前一直做c#的WinForm、WPF的前端开发,近来随着公司业务发展需要开始慢慢接触android,最近在做一个项目需要使用一些图表控件,刚开开始在网上找了几个开源图库,虽然功能很强大,但并能完全满足开发需求。故开始尝试自定义控件的不归之路
一、图表需求
1)曲线图要求
不同温度值,用不同颜色区分,如:正常为绿色、发烧为橙色、高烧为红色;
自适应屏幕分页展示;
根据需要动态控制是否标志最高温;
2)列表展示要求
1、类似余额宝收益效果图
效果展示
温度计+曲线走势图(一)
温度计+曲线走势图(二)
曲线走势图-分页展示(分页中)
曲线走势图(最后一页)
列表展示图
设计思路
体温计
体温计主要分为两部分,即:
上半部:矩形+刻度线,用于展示温度数值
下半部:圆形
使用技术,canvas里的 drawRect、drawLine、drawText
设计思路:
1、温度数据展示部分,首先画一个实心矩形(高度满屏),来作为背景色,第二步:
再画一个矩形来标注温度值(高度根据温度值动态计算),第三步绘制刻度线及刻度值。
注:颜色效果,根据温度值的不同来设置画笔颜色即可。
底部圆形,可通过画圆或直接使用图片。
列表展示
这个简单,只需用到一个空心矩形(外),加一个实心矩形(内)即可。
设计思路同上,就不展开了。
体温曲线
需要用的相关的知识:
1)几何数学
X/Y二维坐标系。
相似三角形计算。
Canvas
1、drawCirclet,通过画实心圆来标记点。
drawPath,来完成复杂图形的绘制(如梯形、三角形等)
drawLine、drawText;
设计思路:
1、Y轴,用于标注刻度线,及刻度值(需数学计算)
2、X轴,用于标注各个时间点(根据队列顺序依次绘制即可)
3、分页效果,通过改变数据源的方式来实现。
注意事项:
1、自适应屏幕,动态变化最大显示的数据量(即显示数据点的最大值);
四、相关源码
获取屏幕分辨率,并计算图表显示的最大点数。
//获取屏幕分辨率
DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm);
AppInstance.windowsWith = dm.widthPixels;
/**
* 计算文字长度
* */
private static float measureTextLength(String text)
{
Paint paintLine = new Paint();
paintLine.setAntiAlias(true);
paintLine.setColor(Color.parseColor(#333333));
paintLine.setTextSize(20);
paintLine.setStrokeWidth(3f);
return paintLine.measureText(text);
}
/**
* 图表显示的最多点数
* */
public static int getChartLineMaxPointCount()
{
float linetextLength = measureTextLength(15:45:34) + 5;
float marginleft = measureTextLength(41 + ℃) + 15;
float marginRight = 50 + 45 / 2;
return (int)((AppInstance.windowsWith - marginleft - marginRight) / linetextLength);
}
/**
* 获取温度参考值
* @return 1:正常 2:发烧 3:高烧
* */
public static int getTemperatureLevel(float value)
{
int level = 1;
if (value 37.3 value = 38)
{
您可能关注的文档
- 餐馆点餐系统课程设计详细分解.doc
- 02-1-第1课时化学能与热能详细分解.doc
- 餐厅服务员初、中级工理论模拟试题详细分解.doc
- 02-新版GSP检查详细分解.doc
- 02-总部制度V3版详细分解.doc
- 餐饮服务管理系统数据库课程设计品详细分解.doc
- 2、企业所得税减免税条件及报送详细分解.doc
- 2××医附属医院保安服务投标书(57页)详细分解.doc
- 2ARM体系结构与接口技术详细分解.doc
- 餐饮管理系统论文详细分解.doc
- 收集储运一般工业固废项目运营管理方案.docx
- 叔丁氧羰基保护基团医药中间体项目初步设计.docx
- 绩效考核工具适用场景.docx
- 绩效管理培训.docx
- 2025-2026学年初中美术人美版北京2013八年级下册-人美版北京2013教学设计合集.docx
- 2025-2026学年初中美术人教版九年级下册-人教版教学设计合集.docx
- 叔丁氧羰基保护基团医药中间体项目规划设计方案.docx
- 2025-2026学年初中美术人美版北京2013九年级下册-人美版北京2013教学设计合集.docx
- 2025年事业单位职测真题汇编卷:言语理解与表达专项.docx
- 2025-2026学年初中美术九年级下册浙美版(2024)教学设计合集.docx
最近下载
- 蒂森MC2详细说明.pdf VIP
- 公交公司安全工作总结.docx VIP
- 打点计时器试卷习题精选附答案(出试卷可选用) .doc VIP
- (正式版)SH∕T 3006-2024 石油化工控制室设计规范.pdf VIP
- (完整版)打点计时器试卷习题附答案(出试卷可选用).docx VIP
- 国家开放大学——政治学原理——章七 自检自测—2022春季作业—2021秋季班.doc VIP
- 在线网课学习课堂《社会研究方法( 华科)》单元测试考核答案.docx VIP
- 蒂升电梯调试资料MC2B门机BG211-BG211C.pdf VIP
- 提高卧床患者踝泵运动的执行率.pptx VIP
- 蒂森MC2-B系统调试手册.pdf VIP
原创力文档


文档评论(0)