很多时候,做一些统计数据,可能放到列表里面看起来不太直观,这个时候借助于折线图,饼状图,柱形图等报表图形展示,即直观,又可以一目了然的明白数据的趋势变化,而且安卓应用,最主要的就是用户和界面交互,一个良好的界面,对用户来说,能起的作用不亚于内存,响应速度等的优化效果。
如何实现一个自定义的折线图呢,当然,你得继承自View,然后写好你的带参构造方法,并且为了考虑以后代码的复用性,把很多能够影响图表的条件都提到全局变量上,这样就能在以后随时随地为你的控件切换不同的皮肤和效果。例如:X轴, Y轴, 线颜色, 点颜色,填充颜色等等
具体代码:
private int bgColor = Color.rgb(Integer.parseInt("4d", 16),
Integer.parseInt("af", 16), Integer.parseInt("ea", 16));// 整体的背景色
private int singleColumnFillColor = Color.rgb(Integer.parseInt("e7", 16),
Integer.parseInt("e7", 16), Integer.parseInt("e9", 16));// 单数列的背景色
private int doubleColumnFillColor = Color.rgb(Integer.parseInt("4d", 16),
Integer.parseInt("af", 16), Integer.parseInt("ea", 16));// 单数行的背景色
private int fillDownColor = Color.rgb(Integer.parseInt("45", 16),
Integer.parseInt("64", 16), Integer.parseInt("bf", 16));// 填充下面部分的背景色
private int xyLineColor = Color.rgb(Integer.parseInt("a9", 16),
Integer.parseInt("d8", 16), Integer.parseInt("f5", 16));// 表格的线颜色
private int chartLineColor = Color.WHITE;// 绘制趋势线的颜色
private int shadowLineColor = Color.rgb(Integer.parseInt("1a", 16),
Integer.parseInt("49", 16), Integer.parseInt("84", 16));// 趋势线阴影的颜色
private String yUnit = "";// Y轴单位
private boolean isDrawY = false;// 是否绘制Y轴
private boolean isDrawX = true;// 是否绘制X轴
private boolean isDrawInsideX = true;// 是否绘制内部的X轴
private boolean isDrawInsedeY = false;// 是否绘制内部的Y轴
private boolean isFillDown = false;// 是否填充点的下面部分
private boolean isFillUp = false;// 是否填充点的上面部分(暂未实现)
private boolean isAppendX = true;// X轴是否向左突出一点
private boolean isDemo = true;// 是否demo测试数据
private int ScreenX;// view的宽度
private int ScreenY;// view的高度
private int numberOfX = 6;// 默认X轴放6个值
private int numberOfY = 5;// 默认Y轴放5个值(越多显示的值越精细)
private int pa