自定义View实例(三)

  • 时间:
  • 浏览:1
  • 来源:大发5分快乐8_极速5分11选5

下一篇自定义View再见~~~

欢迎star,fork,提issues,一同进步!

MotionEvent.ACTION_UP:

1.获取滑动到总距离。

2.防止快速滑动,首先获取1秒内X方向所滑动像素值,因此确定最终滑动的位置。通过有俩个 属性动画,不断改变绘制的以前刚结速位置,再调用invalidate()来进行重绘,达到快速滑动的效果。

3.防止惯性滑动,仔细查看效果图你还都可以发现,当最后滑动的终点位置严重不足一深冬,会自动滑动到前有俩个 位置;当最后滑动的终点位置超过一深冬,会自动滑动到下有俩个 位置。这里随便说说之后在动画以前结速的以前,进行判断,因此调用invalidate()来进行重绘,达到惯性滑动的效果。

4.最后两句代码是为了让下面显示的数字最终不需要 实时更新,接口回调。

MotionEvent.ACTION_MOVE: 获取水平方向滑动的距离,因此不断改变绘制的以前刚结速位置,再调用invalidate()来进行重绘,达到滑动的效果。里边两句代码是为了让下面显示的数字不需要 实时更新,接口回调。

二.自定义滑动刻度尺的实现

从上到下的线性布局,依次是滑动刻度尺,数字TextView,流式布局,以及设置了很多自定义的属性。

将须要设置的文字动态加上到亲戚我们歌词 歌词 的流式布局中去即可,自定义的流式布局会自动根据加上文字的大小进行布局,达到最后的效果。

先上效果图:

三.自定义流式布局的实现

关于自定义View的很多细节还都可以参考以前的博客:

绘制背景的两条实线,绘制里边的数字,绘制里边的刻度线。

最近在系统学习自定义View很多块的知识,前面几篇基本都不 理论知识,这篇博客着重从实战来加强对自定义View的理解与运用。实现的某种效果,分别代表自定义View与自定义ViewGroup。

MotionEvent.ACTION_DOWN: 获取水平方向X的坐标

源码地址:

初始化VelocityTracker,因此把要追踪的MotionEvent注册到VelocityTracker的监听中,用来跟踪触摸屏事件,主要用来防止滑动刻度尺的快速滑动。

里边的是有俩个 还都可以滑动的刻度尺,支持快速滑动,确定的数字也会显示在下方;下面的是有俩个 经典的流式布局,会根据文字长度自动进行布局。一同看看为社 实现的吧:

很多块是整个自定义滑动刻度尺的重点,慢慢分析一下:

1.布局文件

1.重写generateLayoutParams()法律最好的土办法返回MarginLayoutParams的实例,使自定义的流式布局不需要 支持margin属性

2.重写onDraw()法律最好的土办法计算出所有的childView的宽和高以及测量模式,因此设置很多人的宽高

3.重写onLayout()法律最好的土办法对所有childView进行定位(设置childView的绘制区域),因此根据childView的强度进行自动换行。

2.自定义滑动刻度尺的初始准备

1.重写onDraw()法律最好的土办法绘制刻度尺

初始化自定义控件,获取自定义控件的样式属性,初始化相关工具,重写onMeasure()测量自定义控件大小,重写onLayout()获取自定义控件宽高。

一.准备工作

2.重写onTouchEvent()法律最好的土办法防止滑动事件

具体使用:

https://github.com/18722527635/AndroidArtStudy

Android自定义View探索(一)—生命周期