Android自定义自定义View简易折线图控件(二)简易折线图控件(二)
继续练习自定义View,这次带来的是简易折线图,支持坐标点点击监听,效果如下:
画坐标轴、画刻度、画点、连线。。x、y轴的数据范围是写死的 1 <= x <= 7 ,1 <= y <= 70 。。写活的话涉及到坐标轴刻度
的动态计算、坐标点的坐标修改,想想就头大,这里只练习自定义View。
1、在res/values文件夹下新建attrs.xml文件,编写自定义属性:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="LineChartView">
<attr name="textColor" format="color" />
<attr name="lineColor" format="color" />
<attr name="pointColor" format="color" />
</declare-styleable>
</resources>
2、新建LineChartView继承View,重写构造方法:
public LineChartView(Context context) {
this(context, null);
}
public LineChartView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public LineChartView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
3、在第三个构造方法中获取自定义属性的值:
TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.LineChartView, defStyleAttr, 0);
mTextColor = ta.getColor(R.styleable.LineChartView_textColor, 0xff381a59);
mLineColor = ta.getColor(R.styleable.LineChartView_lineColor, 0xff8e29fa);
mPointColor = ta.getColor(R.styleable.LineChartView_pointColor, 0xffff5100);
mPointRadius = DensityUtils.dp2px(context, 3);
ta.recycle();
4、创建画图所使用的对象,如Paint、Path: