down

Android多点触控技术

只谈情不闲聊 提交于 2019-12-11 09:38:05
1 简介 Android多点触控在本质上需要LCD驱动和程序本身设计上支持,目前市面上HTC、Motorola和Samsung等知名厂商只要使用电容屏触控原理的手机均可以支持多点触控Multitouch技术,对于网页缩放、手势操作上有更好的用户体验。 在Android平台上事件均使用了MotionEvent对象方式处理,比如开始触控时会触发ACTION_DOWN,而移动操作时为 ACTION_MOVE,最终放开手指时触发ACTION_UP事件。当然还有用户无规则的操作可能触发ACTION_CANCEL这个动作。 需要注意的是:Android的多点触控功能需要运行在Android 2.0版本以上。 首先Android开发网提醒大家多点触控需要LCD驱动和应用软件两个支持才能实现,所以部分比较老的,比如Android 2.0以前或在北美上市的手机可能无法支持多点触控在固件上,由于Apple专利原因在欧洲和亚太地区的Android 2.0以后的新款机型固件均已经在屏幕驱动中支持,同时模拟器也无法实现多点触控的测试。 2 实现步骤   1)第一种情况是直接重载Activity中的onTouchEvent方法。   对于onTouchEvent方法的参数MotionEvent,我们可以详细处理来实现对多点触控的了解,比如 event.getAction() //获取触控动作比如ACTION

Android触控屏幕Gesture(GestureDetector和SimpleOnGest...

你说的曾经没有我的故事 提交于 2019-12-10 08:20:24
1、当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouch(View v, MotionEvent event)方法,我们可以处理一些touch事件,但是这个方法太过简单,如果需要处理一些复杂的手势,用这个接口就会很麻烦(因为我们要自己根据用户触摸的轨迹去判断是什么手势)Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。虽然他能识别手势,但是不同的手势要怎么处理,应该是提供给程序员实现的,因此这个类对外提供了两个接口:OnGestureListener,OnDoubleTapListener,还有一个内部类SimpleOnGestureListener,SimpleOnGestureListener类是GestureDetector提供给我们的一个更方便的响应不同手势的类,这个类实现了上述两个接口(但是所有的方法体都是空的),该类是static class,也就是说它实际上是一个外部类。程序员可以在外部继承这个类,重写里面的手势处理方法。

Android触控屏幕Gesture(GestureDetector和SimpleOnGest...

被刻印的时光 ゝ 提交于 2019-12-10 08:02:42
1、当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等,我们知道View类有个View.OnTouchListener内部接口,通过重写他的 onTouch ( View v, MotionEvent event)方法,我们可以处理一些touch事件,但是这个方法太过简单,如果需要处理一些复杂的手势,用这个接口就会很麻烦(因为我们要自己根据用户触摸的轨迹去判断是什么手势)Android sdk给我们提供了GestureDetector(Gesture:手势Detector:识别)类,通过这个类我们可以识别很多的手势,主要是通过他的onTouchEvent(event)方法完成了不同手势的识别。虽然他能识别手势,但是不同的手势要怎么处理,应该是提供给程序员实现的,因此这个类对外提供了两个接口:OnGestureListener,OnDoubleTapListener,还有一个内部类SimpleOnGestureListener,SimpleOnGestureListener类是GestureDetector提供给我们的一个更方便的响应不同手势的类,这个类实现了上述两个接口(但是所有的方法体都是空的),该类是static class,也就是说它实际上是一个外部类。程序员可以在外部继承这个类,重写里面的手势处理方法。

AppleScript 判断按键事件的脚本文章收集

我只是一个虾纸丫 提交于 2019-12-10 01:58:46
AppleScript support for SplitPanes 来自:http://code.google.com/p/iterm2/issues/detail?id=559 Reported by samantha... @gmail.com , Jan 29, 2011 Hi, I would like to be able to script the creation of SplitPanes which I find very useful. Ideally, would like to be able to name each pane, launch command in each pane upon creation and decide if the pane is split vertically or horizontally Congratulations for what's already been achieved with iTerm2. @samo9789 May 14, 2011 #1 troy.bol... @gmail.com I've been using the following applescript to setup panes. Perhaps it will be useful to others until better

BFD技术的全面解析

∥☆過路亽.° 提交于 2019-12-09 23:57:04
BFD出现的技术背景 RTA和RTD建立了OSPF邻接关系,Hello包发送周期为10秒;当交换机SWB与SWC链路物理中断,路由器RTA和RTD无法感知,需要等待OSPF协议邻居失效计时器超时后才会中断邻接关系 SWA和SWB启用了VRRP协议,实现了主备网关的作用,SWB为主用网关。 当出口路由器RTB与外网Router的链路中断,SWB虽然可以通过动态路由协议感知,但是无法联动连接下游的网关接口,且继续为主网关。 用户的数据流还是发送到SWB,SWB再通过三层路由转发给SWA,最后由RTA出口。虽然结果不至于造成业务中断,但是会产生次优路径。 BFD的实现原理 一种全网统一、检测迅速、监控网络中链路或者IP路由的双向转发连通状况,并为上层应用提供服务的技 BFD会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到对端BFD报文则认为该双向转发路径发生了故障,通知被服务的相关层应用进行相应的处理。 本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。 不管是物理接口状态、二层链路状态、网络层地址可达性、还是传输层连接状态、应用层协议运行状态,都可以被BFD感知到 BFD会话的检测机制 BFD建立会话存在标识符的概念,类似于OSPF建立邻居需要一个路由器的Router ID。 标识符分为本地标识符和远端标识符,本地标识符用于表示本端设备

Android-onInterceptTouchEvent()和onTouchEvent()

隐身守侯 提交于 2019-12-09 23:35:17
老实说,这两个小东东实在是太麻烦了,很不好懂,我自己那api文档都头晕,在网上找到很多资料,才知道是怎么回事,这里总结一下,记住这个原则就会很清楚了: 1、onInterceptTouchEvent()是用于处理事件(类似于预处理,当然也可以不处理)并改变事件的传递方向,也就是决定是否允许Touch事件继续向下(子控件)传递,一但返回True(代表事件在当前的viewGroup中会被处理),则向下传递之路被截断(所有子控件将没有机会参与Touch事件),同时把事件传递给当前的控件的onTouchEvent()处理;返回false,则把事件交给子控件的onInterceptTouchEvent() 2、onTouchEvent()用于处理事件,返回值决定当前控件是否消费(consume)了这个事件,也就是说在当前控件在处理完Touch事件后,是否还允许Touch事件继续向上(父控件)传递,一但返回True,则父控件不用操心自己来处理Touch事件。返回true,则向上传递给父控件(注:可能你会觉得是否消费了有关系吗,反正我已经针对事件编写了处理代码?答案是有区别!比如ACTION_MOVE或者ACTION_UP发生的前提是一定曾经发生了ACTION_DOWN,如果你没有消费ACTION_DOWN,那么系统会认为ACTION_DOWN没有发生过,所以ACTION

android 中手势GestureDetector

狂风中的少年 提交于 2019-12-09 14:55:06
android 中手势GestureDetector GestureDetector 的代码使用 public class TestGestureDetectorView extends LinearLayout { public static final String TAG = TestGestureDetectorView.class.getSimpleName() + "----"; public static final int ACTION_DOWN = 0; public static final int ACTION_UP = 1; public static final int ACTION_MOVE = 2; public TestGestureDetectorView(Context context, AttributeSet attrs) { super(context, attrs); init(); } GestureDetector gestureDetector; public void init() { gestureDetector = new GestureDetector(getContext(), onGestureListener); setOnTouchListener(new OnTouchListener() { @Override

源码解析---android中ViewGroup的事件分发机制

我的未来我决定 提交于 2019-12-09 12:51:42
ViewGroup事件分发机制 1.概述 上一篇我们写过View的事件分发机制,如果你对这还不了解的可以看这一篇文章: https://my.oschina.net/quguangle/blog/793903 那么今天我们将继续上次未完成的话题,从源码的角度分析ViewGroup的事件分发。首先我们来探讨一下,什么是ViewGroup?它和普通的View有什么区别? 顾名思义,ViewGroup就是一组View的集合,它包含很多的子View和子VewGroup,是Android中所有布局的父类或间接父类,像LinearLayout、RelativeLayout等都是继承自ViewGroup的。但ViewGroup实际上也是一个View,只不过比起View,它多了可以包含子View和定义布局参数的功能。ViewGroup继承结构示意图如下所示: 可以看到,我们平时项目里经常用到的各种布局,全都属于ViewGroup的子类。 下面直接上案例: package qu.com.handlerthread; import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.view.MotionEvent; import android

Android dispatchTouchEvent介绍

China☆狼群 提交于 2019-12-09 12:40:36
android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解。 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP 当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是ViewGroup来处理Touch事件,还是子view来处理Touch事件呢?我只能很肯定的对你说不一定。呵呵,为什么呢?看看下面我的调查结果你就明白了。 android系统中的每个View的子类都具有下面三个和TouchEvent处理密切相关的方法: 1)public boolean dispatchTouchEvent(MotionEvent ev) 这个方法用来分发TouchEvent 2)public boolean onInterceptTouchEvent(MotionEvent ev) 这个方法用来拦截TouchEvent 3)public boolean onTouchEvent(MotionEvent ev) 这个方法用来处理TouchEvent 当TouchEvent发生时

onInterceptTouchEvent和onTouchEvent调用时序

风格不统一 提交于 2019-12-09 12:36:28
onInterceptTouchEvent() 是 ViewGroup 的一个方法,目的是在系统向该 ViewGroup 及其各个 childView 触发 onTouchEvent() 之前对相关事件进行一次拦截, Android 这么设计的想法也很好理解,由于 ViewGroup 会包含若干 childView, 因此需要能够统一监控各种 touch 事件的机会,因此纯粹的不能包含子 view 的控件是没有这个方法的,如 LinearLayout 就有, TextView 就没有。 onInterceptTouchEvent() 使用也很简单,如果在 ViewGroup 里覆写了该方法,那么就可以对各种 touch 事件加以拦截。但是如何拦截,是否所有的 touch 事件都需要拦截则是比较复杂的, touch 事件在 onInterceptTouchEvent() 和 onTouchEvent 以及各个 childView 间的传递机制完全取决于 onInterceptTouchEvent() 和 onTouchEvent() 的返回值。并且,针对 down 事件处理的返回值直接影响到后续 move 和 up 事件的接收和传递。 关于返回值的问题,基本规则很清楚,如果 return true, 那么表示该方法消费了此次事件,如果 return false