关于Android中View的基础知识
什么是View
View 是Android中所有控件的基类,基本所有控件都是其子类
控件中又主要分为两类,View和ViewGroup,毫无疑问,都属于View,不同的是,ViewGroup中一般可以包含多个View。
常见的布局都属于ViewGroup
View的位置参数
既然知道了什么是View,那么怎么确定View在屏幕上的位置呢?
关于这一点,Android系统并没有使用什么奇特的办法,还是常规的用四个坐标点来描述位置
top,left,right,bottom
正方向分别是下和右
需要注意的是,这些位置点都是相对于父容器的,是相对坐标。
自3.0之后,添加了两个新坐标值,translationX,translationY,表示控件左上角相对父容器的偏移量。
MotionEvent和TouchSlop
MotionEvent是指手指接触屏幕后的一系列动作,主要包含三种
ACTION_DOWN
ACTION_MOVE
ACTION_UP
TouchSlop指的是系统指定的滑动的最小距离,不足这个距离系统就不认为产生了滑动事件。
VelocityTracker,GestureDetector和Scroller
分别代表了滑动速度测量的类
手势检测的类
以及滑动的类
由于这三个类的使用都比较简单,这里就不详细叙述了
View的滑动
View的滑动有三种方法
1.scrollTo/ScrollBy 适用于内容的滑动,像listview的滑动等等
2.使用动画 比较简单,适合整体移动,但是移动后点击事件区域不会跟着动,需要特殊处理
3.改变布局参数 比较复杂,但是无明显的副作用
关于弹性滑动的几种方式
弹性滑动指的是滑动的时候有一个过程,而不是瞬间到达
主要有三种方式
1.使用scroller进行滑动 其实是通过强制重绘来达到的弹性滑动
2.通过动画 可以在滑动过程中进行一些自己的操作,原生也有滑动的动画
3.使用延时策略 定时发送消息调用scroll实现,可以实现自己操作