View基础知识 ————–(1)
主要内容有: View的位置参数 MotionEvent和TouchSlop对象 VelocityTracker GestureDetector和Scroller对象
1. 什么是view
View是Android中所有控件的基类
在Android的设计中,ViewGroup也继承View
ViewGroup内部可以有子View,而子View同样可以是ViewGroup
2. View的位置参数
View的四个属性:top left right bottom
top:左上角纵坐标
left:左上角横坐标
right:右下角横坐标
bottom:右下角纵坐标
需要注意的是 这些坐标都是相对于View的父容器来说的
在android中,x轴和y轴的正方向分别为右和下
如何获得View的这四个参数呢?View的源码中它们对应的获取方式如下:
- Left = getLeft()
- Right = getRight()
- Top = getTop()
- Bottom = getBottom()
从android3.0开始 View增加了额外的几个参数:x,y,translationX和translationY
其中x和y是view左上角的坐标,而translationX和translationY是相对于父容器的偏移量。
x = left + translationX
y = top + translationY
需要注意的是: View在平移中top和left表示的是原始左上角的位置信息,其值并不会改变
3 MotionEvent 和 TouchSlop
3.1 MotionEvent
- ACTION_DOWN 手指刚接触屏幕
- ACTION_MOVE 手指在屏幕上移动
- ACTION_UP 手指从屏幕松开的一瞬间
3.2 TouchSlop
TouchSlop是系统所能识别出的被认为是滑动的最小距离
获取方式:
ViewConfiguration.get(getContext()).getScaledTouchSlop()
4 VelocityTracker GestureDetector和Scroller
4.1 VelocityTracker
速度追踪,用于追踪手指在滑动过程中的速度,包括水平和竖直方向的速度。
4.2 GestureDelector
手势检测,用于辅助检测用户的单击 滑动 长按 双击等行为
4.3 Scoller
弹性滑动对象,用于实现View的弹性滑动。我们知道View的scrollTo/scrollBy方法来进行滑动,其过程是瞬间完成的,
没有过渡效果,用户体验不好,这时可以用Scoller来实现有过渡效果的滑动