转载请注明出处:http://write.blog.csdn.net/postedit/50434634
接上篇 Android 圆形百分比(进度条) 自定义view
昨天分手了,不开心,来练练自定义view麻痹自己,毕竟菜鸟只能靠不断练习提高。#程序员不应该有女朋友#
我们要实现的是一种只有来看趋势,不需要看具体数值,比较简约的折线图。比如下图这样的:
这个时候,一些比较优秀的第三方图表库如:MPChart 就显得比较臃肿了。所以我们需要自定义一个折线图。
老规矩,先来看最终的实现效果:
其实这种做的很简约,大概分三个步骤:
一、画坐标轴
二、画点
三、画线
那么我们开始吧Let's go (Let it go)。
设计一下大概需要的东西。首先把X轴和Y轴的数据存放在两个String[]里。
具体的点的位置用一个Map<Integer,Integer>来存放.
步骤:
一、新建一个类,取名为SimpleLineChart继承View 重写他的构造方法。这里为了简便,就不添加自定义属性了attr.xml。
<span style="font-size:18px;"> </span><span style="font-size:12px;"> public SimpleLineChart(Context context) {
this(context, null);
}
public SimpleLineChart(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public SimpleLineChart(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}</span>
二、测量大小。(继续偷懒,只支持EXACTLY,AT_MOST直接丢异常)
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int widthMode = MeasureSpec.getMode(widthMeasureSpec);
int heightMode = MeasureSpec.getMode(heightMeasureSpec);
int widthSize = MeasureSpec.getSize(widthMeasureSpec);
int h