Android的心脏图

我想做一个实时显示有氧graphics的应用程序。 这意味着我要测量心脏位,并想在我的应用程序中显示graphics中的比特率。 但我想知道绘制有氧图。 我已经经历了许多样本graphics代码,但是可以得到任何线索来绘制心图。 有任何线索吗?

Solutions Collecting From Web of "Android的心脏图"

对于这个特定的应用程序,您可能需要使用Path和SurfaceView“手动”绘制graphics。

在初始化过程中获取一个Paint实例:

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(3); paint.setColor(Color.GREEN); //Change to what you want 

当您需要更新graphics时,清除场景并build立线path(根据需要调整):

 canvas.drawColor(Color.WHITE); Path path = new Path(); path.moveTo(0, yourValueAt(0)); for(int sec = 1; sec < 30; sec++) path.lineTo(sec, yourValueAt(sec)); canvas.drawPath(path, paint); 

您也可以使用quadTo或cubicTo而不是lineTo。

如果你想让你的graphics具有实时animation效果(例如在数据出现在右侧时向左滑动),那么可以使用与着名的LunarLander示例类似的方式绘制SurfaceView(以下代码是简化版本):

 class DrawingThread extends Thread { @Override public void run() { while (running) { Canvas c = null; try { c = mSurfaceHolder.lockCanvas(null); synchronized (mSurfaceHolder) { doDraw(c); } } finally { if (c != null) mSurfaceHolder.unlockCanvasAndPost(c); } synchronized (this) { //Optional but saves battery life. //You may compute the value to match a given max framerate.. this.wait(SOME_DELAY_IN_MS); } } } } 

其中mSurfaceHolder是通过调用yourSurfaceView.getHolder()获得的, doDraw是您调用canvas.drawPath()和您的所有绘制代码​​的地方。