自定义布局中的平滑移动
无意中搜索到这篇文章,大概扫了一眼,知道是篇好文,先转载记录下来学习!
文章主要讲的是自定义 view 的写法心得。
转自:http://www.apkbus.com/android-48445-1-1.html
在 android 应用程序的开发过程中,相信我们很多人都想把应用的交互做的比较绚丽,比
如让界面切换平滑的滚动,还有热度灰常高的伪 3D 等界面效果,通常情况下,系统提供
的应用在特效这方面只能为我们提供简单的动画接口,所以要想实现比较酷炫的效果还是
要自己去开发布局控件(即所谓的自定义 View、ViewGroup)。小弟也经常做一些自定义的
控件,最近工作比较清闲,所以便将自己对自定义布局控件的一些心得写出来,权当是自
己的学习笔记了,各位高手看到了可以忽略 。下面就我最近工作中遇到的一个自定义
控件开发做一些简单的介绍,其实那个地方原本可以用 ScrollView 解决很大一部分问题的,
但有一些效果确实需要对控件进行重新定义,在继承 ScrollView 开发中仍然会遇到一些
ScrollView 自身的限制,所以就仿照 ScrollView 自己做了一个控件。在其中遇到了一些问
题自然就是像 ScrollView 中拖动的效果(比如快速拖动在手指离开屏幕时控件依旧会由于惯
性继续滑动一段距离后才会停止运动),所以就对这个东东做了一下仔细的研究,虽然以前
也做过类似的开发,这次由于时间比较充裕,所以将开发中遇到的一些问题都一一记录了
下来。下面开始正题:
自定义布局控件自然是要继承某个 View 或 ViewGroup
由于是根据项目的开发来写的这篇博客,所以我就以自定义布局控件(ViewGroup)来做介
绍了。
开发一个自定义的 ViewGroup 自然是要继承 ViewGroup 类了,在继承这个类之后必须要
重写的方法就是
onLayout(boolean changed, int l, int t, int r, int b)
另外至少要有一个构造方法,我个人习惯重写那个有两个参数的构造方法(XXX(Context
context, AttributeSet attrs)),因为有了这个构造方法就可以在 xml 布局文件里使用这个
类了。
如果想要对这个布局控件以及其子控件的尺寸进行精确的控制那就要重写下面这个方法了
onMeasure(int widthMeasureSpec, int heightMeasureSpec)
这个方法从字面理解就是估算控件的尺寸大小了,关于这个方法的详细说明引用一下另一
位童鞋的文章 http://www.eoeandroid.com/thread-102385-1-1.html,这里就不详细介绍了
下面开始介绍关于如何让自定义的控件进行平滑的移动,并能够根据手势的情况产生惯性
滑动的效果
先介绍一下开发这种滑动效果需要用到的各种工具类:
- 1
- 2
前往页