4.仿薄荷卷尺

本篇文章属于android仿薄荷卷尺系列文章

代码地址

根据之前的文章得到了一个HorizontalScroll

该控件类似一个水平滑动的ScrollView
但是具有以下两个扩展功能

  • leftMaxScorll,rightMaxScroll指定内容左右最大的偏移量。
  • oneStep 每次内容滑动完成后,自动偏移到oneSetp的整数倍。

自定义一个MyTap控件,继承HorizontalScroll

MyTap的主要操作如下

一.绘制刻度

根据设置的起始和结束重量,从屏幕中间开始,每隔lineGap个像素绘制一个刻度。


image
//伪代码如下
        for (int i = 0; i < kgs.size(); i++) {
            float nowKg = kgs.get(i);
            canvas.drawLine(startX, 0, startX, endY, scalesPaint);
            startX += lineGap;
        }

二.调动父类方法进行设置

  1. 刻度绘制完成后,
    调用父类的方法将左侧的最大偏移量设置为0,右侧的最大偏移量就是最后一个刻度的横坐标。
       //伪代码
        setLeftMaxScorll(0);
        setRightMaxScroll(最后一个刻度的横坐标);
  1. 调用父类的方法设置偏移量为lineGap的整数倍。

三.刻度变化监听

在onScrollChanged中监听偏移量的变化,并根据偏移量得到相应的重量。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容