当前位置:   article > 正文

Android View(一)——View的基础知识

android view

一.View的基础知识

1.什么是View

View是一种界面层的控件的一种抽象,它代表了一个控件,是Android中所有控件的基类。
在这里插入图片描述

2.View的位置参数

在这里插入图片描述
在这里插入图片描述

3.MotionEvent

在我们触摸屏幕的过程中,可以分为三种情况,分别是按下、滑动、弹起。Android中为我们封装好了一个MotionEvent类,使得我们对屏幕的一系列操作事件都可以记录在这个MotionEvent里面。

  • ACTION_DOWN —— 手指刚接触屏幕
  • ACTION_MOVE —— 手指在屏幕上移动
  • ACTION_UP —— 手指从屏幕上松开的一瞬间

通过MotionEvent对象我们可以得到点击事件发生的x和y坐标

  • getX/getY 相对当前View左上角的x和y坐标
  • getRawX/getRawY 相对手机屏幕左上角的x和y坐标

事件序列:由一个ACTION_DOWN事件,0个或者1个或者多个ACTION_MOVE事件,加上一个ACTION_UP事件组成的一个序列

4. TouchSlop

TouchSlop是系统所能识别出的被认为是滑动的最小距离,这是一个常量,和设备有关,在不同设备上这个值可能不同
ViewConfiguration这个类主要定义了UI中所使用到的标准常量,像超时、尺寸、距离,如果我们需要得到这些常量的数据,我们就可以通过这个类来获取,具体方法如下:
获取ViewConfiguration实例:

 ViewConfiguration viewConfiguration = ViewConfiguration.get(Context);
  • 1

常用的方法

//  获取touchSlop (系统 滑动距离的最小值,大于该值可以认为滑动)
int touchSlop = viewConfiguration.getScaledTouchSlop();
//  获得允许执行fling (抛)的最小速度值
int minimumVelocity = viewConfiguration.getScaledMinimumFlingVelocity();
//  获得允许执行fling (抛)的最大速度值
int maximumVelocity = viewConfiguration.getScaledMaximumFlingVelocity();
//  Report if the device has a permanent menu key available to the user 
//  (报告设备是否有用户可找到的永久的菜单按键)
//  即判断设备是否有返回、主页、菜单键等实体按键(非虚拟按键)
boolean hasPermanentMenuKey = viewConfiguration.hasPermanentMenuKey();  

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

5. VelocityTracker

速度追踪,用于追踪手指在滑动过程中的速度,包含水平和竖直方向的速度。
使用过程:

//VelocityTracker是Android系统内置的速度追踪类,首先调用它来追踪当前
//点击事件的速度,event一般是通过onTouchEvent函数传递的MotionEvent对象
VelocityTracker velocityTracker = VelocityTracker.obtain();
velocityTracker.addMovement(event);

//先调用computeCurrentVelocity函数,用于设定计算速度的时间间隔
velocityTracker.computeCurrentVelocity(1000);
//这里的速度指的是一段时间内手指划过的像素数,比如将时间间隔设置为1000ms,
//在1s内,手指在水平方向划过100像素,水平速度就是100.
//  速度的计算为(终端位置-起始位置)/间隔时间。
int xVelocity = (int) velocityTracker.getXVelocity();
int yVelocity = (int) velocityTracker.getYVelocity();

//不需要时,调用clear方法回收并重置内存
velocityTracker.clear();
velocityTracker.recycle();

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

6. GestureDetector

手势检测,用于辅助检测用户的单击,滑动,长按,双击等行为,使用系统的GestureDector来监听这些事件

GestureDetector内部的Listener接口:

监听器 简介
OnGestureListener 手势检测,主要有:按下(Down)、快速滑动(Fling)、长按(LongPress)、滚动(Scroll)、触摸反馈(ShowPress)和单击抬起(SingleTapUp)
OnDoubleTapListener
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/743024
推荐阅读
相关标签
  

闽ICP备14008679号