触摸屏
来源:互联网 发布:办公软件考试题库 编辑:程序博客网 时间:2024/04/29 09:28
1. MotionEvent (单点触摸)
2. 多点触摸
3. 触摸地图
4. 手势
MotionEvent 的Motion 有手势、动作的含义.MotionEvent 对象是与用户触摸相关的事件序列,也就是一系列事件包括: 按下、移动、抬起等.另外还有ACTION_CANCEL操作, 它表示一个触摸序列在未发生任何实际操作的情况下结束; 还有一个 ACTION_OUTSIDE ,在触摸操作越界时仍然能够找到该操作的特殊情况下设置。
(1). 接收单点触摸事件有 2 种方式,onTouchEvent() 和实现View.OnTouchListener 接口,调用View 对象的setOnTouchListener() 方法来为该View 设置处理程序, 然后回调处理方法onTouch()
注意两者区别 boolean onTouchEvent(MotionEvent event)
boolean onTouch(View v, MotionEvent event)
如果MotionEvent 处理程序使用了以上任意一个方法,并且其他任何实体都不需要知道该事件,那么该方法应该返回true. 如果Activity 中视图对象不但对此方法不感兴趣,而且对与此触摸序列相关的任何未来事件也不感兴趣,那么它返回false.
举例:
Button 对象可使用一个触摸事件,因为一次触摸相当于一次单击,因此它从 onTouchEvent() 方法返回 true.在接收到ACTION_DOWN事件时,Button 将更改自己的颜色,以表示它正在被单击,它还希望接收 ACTION_UP事件,以便知道用户何时离开它,它从而发起单击按钮的逻辑。如果Button 对象从onTouchEvent() 返回 false, 那么它不再接收任何其他 MotionEvent 对象来知道用户手指何时离开触摸屏.
MotionEvent 在传递到View 的 onTouchEvent () 方法之前,(如果已实现 OnTouchListener 接口)将首先传递给onTouch() 回调方法, 只有当onTouch() 方法返回 false 时,才会调用 View 的onTouchEvent ()方法,
一个示例 TouchDemo1工程,效果图如下
关于触摸,模拟器和真实设备有一些区别,模拟器的位置精度设置为整数 52X20, 在真实设备上的精度为小数 42.8374 X 25.293747, 触摸对象MotionEvent 的位置包含 X 和 Y 分量,其中 X 表示从View对象的左侧到触摸占的距离, Y表示从View 对象的顶部到触摸点的距离.
另外,模拟器中Pressure (按压力)为0, Size (触摸面积)也为0,对于真实设备 Pressure 和Size 在 0和1之间.
注意这个转换方法
private static String getActName(int action){
switch(action){
case 0:
return "ACTION_DOWN";
case 1:
return "ACTION_UP";
case 2:
return "ACTION_MOVE";
case 3:
return "ACTION_CANCEL";
case 4:
return "ACTION_OUTSIDE";
}
return "";
}
(2). 拖放操作, 拖放的典型应用是将某个对象拖放到回收站的操作,其中被拖动的对象应被删除, 也可以是将文件拖放到一个文件夹中,以实现移动或复制它.
值得注意的是,在Android 3.0(Honeycomb) 中,提供了对拖放的直接支持.也就是将对象放在屏幕上的另一个对象上, 相关示例见DragDropFragDemo 工程, 示意图
下面接着介绍2.3版本中 拖放的实现,具体代码请参见 TouchDragDemo1工程
示意图如下
相关项目代码 http://www.androidbook.com/projects , ProAndroid3_Ch25_Touchscreens.zip
- 触摸屏
- 触摸屏
- 触摸屏
- 触摸屏
- 触摸屏
- 触摸屏
- 触摸屏
- 触摸屏
- 触摸屏
- 电阻触摸屏电容触摸屏触摸屏
- 电阻触摸屏 - 电阻触摸屏
- 触摸屏原理
- MTK 触摸屏
- 触摸屏杂
- 触摸屏设置
- 触摸屏 认识
- 触摸屏校准
- 触摸屏原理
- 找7
- 8种常见的Java不规范代码
- hexdump命令
- c++的四种类型转换
- ubuntu下调试android手机,并进入手机shell终端
- 触摸屏
- 天天记录 - 一个onFocusChanged问题
- 赵雅智_Java JDK 5.0 内省
- 【dp】codeforces 83E
- 简单 却爱
- C++中的多态在C中如何实现
- 随笔(一)
- Action 跟 Actionsupport 的区别
- GUI编程