Android 区别普通Touch方法和Scroll
- @Override
- public boolean onTouchEvent(MotionEvent event) {
- if(event.getAction()==MotionEvent.ACTION_UP){
- try {
- return handleActionUP(event);
- } catch (InaccurateScrollActionHandleException e) {
- // TODO Auto-generated catch block
- Log.e("DigitBusScreen.onTouchEvent", "Use handleActionUP wrong place");
- return false;
- }
- }
- return gestureDetector.onTouchEvent(event);
- }
- @Override
- public boolean onDown(MotionEvent arg0) {
- // TODO Auto-generated method stub
- touchMode = TOUCH_MODE_DOWN;
- return true;
- }
- @Override
- public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
- float distanceY) {
- // TODO Auto-generated method stub
- switch(touchMode){
- case TOUCH_MODE_DOWN:
- case TOUCH_MODE_SCROLLCHECK:
- if(Math.abs(tempOffsetX+distanceX)<20){
- tempOffsetX += distanceX;
- touchMode = TOUCH_MODE_SCROLLCHECK;
- }else{
- touchMode = TOUCH_MODE_SCROLL;
- tempOffsetX = 0;
- }
- break;
- case TOUCH_MODE_SCROLL:
- if(distanceX!=0 && (offsetX-distanceX<=0)
- && (offsetX-distanceX>=-(offsetX+(actualLengthBetweenStation+Positions.getStationXLength())*numberOfStation))){
- for(Sprite sprite:sprites){
- if(sprite instanceof ScrollSprite)
- ((ScrollSprite)sprite).scrollChangeOffset(-distanceX, 0);
- }
- offsetX += -distanceX;
- }
- break;
- }
- return true;
- }
- /**
- * 处理ACTION_UP的MotionEvent
- * @param event
- * @return
- * @throws InaccurateScrollActionHandleException
- */
- private boolean handleActionUP(MotionEvent event) throws InaccurateScrollActionHandleException{
- if(event.getAction()!=MotionEvent.ACTION_UP)
- throw new InaccurateScrollActionHandleException();
- switch(touchMode){
- case TOUCH_MODE_SCROLLCHECK:
- tempOffsetX = 0;
- case TOUCH_MODE_DOWN:
- super.onTouchEvent(event);
- break;
- }
- touchMode = TOUCH_MODE_REST;
- return true;
- }
Android 区别普通Touch方法和Scroll的更多相关文章
- Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题
Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...
- Android HTTP实例 使用GET方法和POST方法发送请求
Android HTTP实例 使用GET方法和POST方法发送请求 Web程序:使用GET和POST方法发送请求 首先利用MyEclispe+Tomcat写好一个Web程序,实现的功能就是提交用户信息 ...
- ThinkPHP的D方法和M方法的区别
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- wait方法和sleep方法的区别
一.概念.原理.区别 Java中的多线程是一种抢占式的机制而不是分时机制.线程主要有以下几种状态:可运行,运行,阻塞,死亡.抢占式机制指的是有多个线程处于可运行状态,但是只有一个线程在运行. ...
- M方法和D方法的区别
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- ThinkPHP 中M方法和D方法的具体区别(转)
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- synchronized 修饰在 static方法和非static方法的区别
Java中synchronized用在静态方法和非静态方法上面的区别 在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法.也可以synchroniz ...
- JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别
JAVA反射中的getFields()方法和getDeclaredFields ()方法的区别 关于获取类的字段有两种方式:getFields()和getDeclaredFields().我们先来 ...
- Exception 的 toString() 方法和 getMessage() 方法的区别
Exception 的 toString() 方法和 getMessage() 方法的区别: 在开发的过程中打印错误日志时尽量使用e.toString() 方法, 因为当错误为空指针时 e.getMe ...
随机推荐
- 在线音乐API的研究 (Part 2.1)
本文转载于:http://www.cnblogs.com/osmondy/p/LyricApi.html 最近,在优化一个自己写的音乐播放器.主要目的是回顾.归纳,并希望能够写出一个属于自己的comm ...
- (转)A Beginner's Guide To Understanding Convolutional Neural Networks
Adit Deshpande CS Undergrad at UCLA ('19) Blog About A Beginner's Guide To Understanding Convolution ...
- Windows下IntelliJ IDEA中运行Spark Standalone
ZHUAN http://www.cnblogs.com/one--way/archive/2016/08/29/5818989.html http://www.cnblogs.com/one--wa ...
- perform-two-phase-commits/
https://docs.mongodb.com/manual/tutorial/perform-two-phase-commits/
- JSBinding + SharpKit / 实战:转换 Stealth
这个例子相对简单,基本上一路顺畅 // JSBindingSettings.classes public static Type[] classes = new Type[] { typeof(Per ...
- 斐波那契数列PHP非递归数组实现
概念: 斐波那契数列即表达式为 a(n) = a(n-1)+a(n-2) 其中 a1 =0 a2 = 1 的数列 代码实现功能: 该类实现初始化给出n,通过调用getValue函数得出a(n)的值 ...
- 011. asp.net内置对象
Response对象: Response代表了服务器响应对象, 主要用于将数据从服务器发送回浏览器; 每次客户端发出一个请求的时候,服务器就会用一个响应对象来处理这个请求,处理完这个请求之后,服务器就 ...
- C#去掉字符串中的特殊字符
方案一: string except_chars = ": ‘ ! @ # % … & * ( ^ & ¥ , . , .)$"; string src = ...
- 3 TKinter设置宽高及背景色
代码示例 #!/usr/bin/env python # _*_ coding:utf-8 _*_ from Tkinter import * root = Tk() B1 = Button(root ...
- html之head,base,meta,title
一个简单的HTML最基本的必须的元素 用于定义文档的头部,是所有头部元素的容器.头部描述了文档的各种属性和信息,绝大多数头部的数据都不会直接显示给读者. 下面这些标签可用在head部分:base,li ...