本篇文章属于android仿薄荷卷尺系列文章
根据之前的文章得到了一个HorizontalScroll
该控件类似一个水平滑动的ScrollView
但是具有以下两个扩展功能
- leftMaxScorll,rightMaxScroll指定内容左右最大的偏移量。
- oneStep 每次内容滑动完成后,自动偏移到oneSetp的整数倍。
自定义一个MyTap控件,继承HorizontalScroll
MyTap的主要操作如下
一.绘制刻度
根据设置的起始和结束重量,从屏幕中间开始,每隔lineGap个像素绘制一个刻度。
//伪代码如下
for (int i = 0; i < kgs.size(); i++) {
float nowKg = kgs.get(i);
canvas.drawLine(startX, 0, startX, endY, scalesPaint);
startX += lineGap;
}
二.调动父类方法进行设置
- 刻度绘制完成后,
调用父类的方法将左侧的最大偏移量设置为0,右侧的最大偏移量就是最后一个刻度的横坐标。
//伪代码
setLeftMaxScorll(0);
setRightMaxScroll(最后一个刻度的横坐标);
- 调用父类的方法设置偏移量为lineGap的整数倍。
三.刻度变化监听
在onScrollChanged中监听偏移量的变化,并根据偏移量得到相应的重量。