1.创建手势识别器
GestureDetector gestureDetector = new GestureDetector();
2.创建识别器监听对象
private class GestureDetector.OnGestureListener listener = new GestureDetector.OnGestureListener {
//手指轻轻触摸屏幕的一瞬间触发
@Override
public boolean onDown(MotionEvent e) {
return false;
}
//手指轻轻触摸屏幕,尚未松开或拖动时触发
@Override
public void onShowPress(MotionEvent e) {
}
//手指轻轻触摸屏幕后松开时触发
@Override
public boolean onSingleTapUp(MotionEvent e) {
return false;
}
//手指按下屏幕后拖动时触发
@Override
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) {
return false;
}
//长按屏幕时触发
@Override
public void onLongPress(MotionEvent e) {
}
//按下屏幕,快速滑动后松开时触发
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
return false;
}
});
}
3. 重写view的onTouchEvent方法 交给手势识别器处理
@Override
public void onTouchEvent(MotionEvent event){
return gestureDetector.onTouchEvent(event);
}
4. Configuration
Configuration用来描述设备的配置信息。
比如用户的配置信息:locale和scaling等等
比如设备的相关信息:输入模式,屏幕大小, 屏幕方向等等
Configuration configuration=getResources().getConfiguration();
//获取国家码
int countryCode=configuration.mcc;
//获取网络码
int networkCode=configuration.mnc;
5. ViewConfiguration
ViewConfiguration提供了一些自定义控件用到的标准常量,比如尺寸大小,滑动距离,敏感度等等。
ViewConfiguration viewConfiguration=ViewConfiguration.get(context);
//获取touchSlop。该值表示系统所能识别出的被认为是滑动的最小距离
int touchSlop = viewConfiguration.getScaledTouchSlop();
//获取Fling速度的最小值和最大值
int minimumVelocity = viewConfiguration.getScaledMinimumFlingVelocity();
int maximumVelocity = viewConfiguration.getScaledMaximumFlingVelocity();
//判断是否有物理按键
boolean isHavePermanentMenuKey=viewConfiguration.hasPermanentMenuKey();
/双击间隔时间.在该时间内是双击,否则是单击
int doubleTapTimeout=ViewConfiguration.getDoubleTapTimeout();
//按住状态转变为长按状态需要的时间
int longPressTimeout=ViewConfiguration.getLongPressTimeout();
//重复按键的时间
int keyRepeatTimeout=ViewConfiguration.getKeyRepeatTimeout();