这个简单的demo需理解掌握绘制曲线方法、生物节律算法、调用日期控件传递数据即可。
具体实现展示图:
界面自动显示的是当前的日期,为最中间的红线:
可点击更换日期按钮,触动对话框显示日期,对日期进行更改(日期为安卓自带控件):
更改日期后会更新绘图:
具体实现
1.绘制曲线,此处为在github中下载的绘图源码,在此源码的基础上进行修改。在安卓工程文件中定义为CustomCurveChat.java,以下是代码分步描述:
①安卓的绘图继承View,并重写它的onDraw( Canvas canvas)。
public class CustomCurveChart extends View {
②对绘制曲线的一些需要值和画笔方法进行声明。
// 坐标单位
private String[] xLabel;
private String[] yLabel;
// 曲线数据
private List<double[]> dataList;
private List<Integer> colorList;
private boolean showValue;
// 默认边距
private int margin = 20;
// 距离左边偏移量
private int marginX = 30;
// 原点坐标
private int xPoint;
private int yPoint;
// X,Y轴的单位长度
private int xScale;
private int yScale;
// 画笔
private Paint paintAxes;
private Paint paintCoordinate;
private Paint paintTable;
private Paint paintCurve;
private Paint paintRectF;
private Paint paintValue;
private Paint paintToday;
③定义方法(?),获取相关资源。
Context类:通过它我们可以获取应用程序的资源和类,也包括一些应用级别操作,例如:启动一个Activity,发送广播,接受Intent信息等。
public CustomCurveChart(Context context, String[] xLabel, String[] yLabel, List<double[]> dataList, List<Integer> colorList, boolean showValue) {
super(context);
this.xLabel = xLabel;
this.yLabel = yLabel;
this.dataList = dataList;
this.colorList = colorList;
this.showValue = showValue;
}
public CustomCurveChart(Context context) {