自定义控件之——心电图控件的绘制

本文介绍如何在Android中根据蓝牙设备数据绘制心电图控件,包括坐标系统理解、背景网格绘制和波形图绘制。通过定义ECGView继承View,设置最大Y值、格子值,计算点与点间的距离来实现动态更新效果。
摘要由CSDN通过智能技术生成

这是我在做项目的时候的一个需求,根据蓝牙设备采集到的数据画出心电图。 由于以前没有做过类似的东西,当我拿到这个需求的时候 整个人都不好了,没办法只能硬着头皮上呗。然后就开始在网上疯狂的找Demo,皇天不负有心人,我果然没有找到完全符合我们需求的demo快哭了,没有办法只能自己撸一个出来。先上一个效果图 (这只是demo想要好看点可以自己调)。


        数据只是使用的随机数,所以看起来有点不专业,当画完一屏幕的点后,会有类似擦除效果来更新我们的心电图,就和医院的类似。横坐标与纵坐标的值都可以自己修改,比如将横坐标修改成时间,都是行的,下面开始工作。




在开始定义以前,首先介绍一下android 的坐标系统如上图,android的坐标和我们数学中学习的坐标差不多,只是将坐标原点定在了左上角,某一点的坐标我们根据宽高来确定。比如右下角的坐标:Y坐标是当前位置距顶部的高度,X是当前位置距左边的距离,假设距顶部的距离为Height,距左边的距离为width那么该点的坐标为(width,height);

说了这么多咱们开始进入正题

1、定义ECGView继承自View,并实现重写它的三个构造函数(其实只需要重写两个参数就行,但是以备不时之需还是都写了)


2.定义declare-styleable标签,命名空间的时候使用

<declare-styleable name="elg">
	    <attr name="BackLineColor" format="color"/>
	    <attr name="TitleColor" format="color"/>
	    <attr name="PointerLineColor" format="color"/>
	    <attr name="TitleSize" format="dimension"/>
	    <attr name="XYTextSize" format="dimension"/>
	    
	</declare-styleable>    
BackLineColor为背景图中表格线的颜色,TitleColor标题颜色,PointerLineColor波形图线的颜色,TitleSize标题文字大小,XYTextSize XY轴文字的大小。

然后在构造方法中初始化

public ECGView(Context context, AttributeSet attrs) {
		super(context, attrs);
		_context = context;
		TypedArray typedArray = context.obtainStyledAttributes(attrs,
				R.styleable.elg);
		_backLineColor = typedArray.getColor(R.styleable.elg_BackLineColor,
				Color.GREEN);
		_titleColor = typedArray
				.getColor(R.styleable.elg_TitleColor, Color.RED);
		_p
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值