我想知道像SwipePad和Wave Launcher这样的应用程序能够通过服务来检测触摸手势/事件。 这些应用程序即使不在自己的Activity中,也能够检测到触摸手势。 我已经遍布互联网,并没有find他们如何做到这一点。 我的主要问题是一个服务如何监听客户端/事件,就像一个普通的Activity可能会接收到MotionEvent,即使它不在原来的Activity或context中。 我基本上正在尝试构build一个应用程序,它将识别来自用户的特定触摸手势,而不pipe哪个活动位于顶部,并在该手势被识别时执行某些操作。 触摸重算将作为一个服务在后台运行的线程。
我目前正在摆弄Android编程,但是我在检测不同的触摸事件时遇到了一个小问题,即正常的触摸按下(在屏幕上按下并立即释放),长按(触摸屏幕并按住它的手指)和移动(在屏幕上拖动)。 我想要做的是在屏幕上有一个图像(一个圆圈),我可以拖动。 然后当我按下一次(短/正常按)一个吐司来了一些关于它的基本信息。 当我长时间按下它时,带有列表的AlertDialog出现以select不同的图像(圆形,矩形或三angular形)。 我用自己的OnTouchListener做了一个自定义View来检测事件并在onDraw中绘制图像。 OnTouchListener.onTouch就像这样: // has a touch press started? private boolean touchStarted = false; // co-ordinates of image private int x, y; public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); if (action == MotionEvent.ACTION_DOWN) { touchStarted = true; } else if (action == MotionEvent.ACTION_MOVE) { // movement: cancel the […]
工具提示是知道应用程序的非常有用的接口范例。 它们是视觉控制和与该控制相关的应用特定操作之间的映射。 用户可以通过hover鼠标指针来浏览操作而不用调用它。 触摸设备使这种范例基本上不可能。 这限制了应用程序的可用性,这在某些情况下变得相当神秘。 你知道触摸设备是否存在替代工具提示的概念吗? 它们实际上缺乏用户界面的一个自由度:指针位置。 如何有效地恢复这种沟通渠道?
我正在为iPad开发一个HTML应用程序。 因此,它利用触摸事件和webkit-CSSanimation。 直到现在我已经使用铬作为我的debugging环境,因为它是真棒开发人员模式。 我想要的是能够在我的PC上使用Google-Chrome的debugging器来debugging我的Html / JavaScript,同时用我的鼠标模拟触摸事件。 我的网站没有任何多点触摸事件,也没有鼠标事件(iPad上没有鼠标)。 我实际上并不是对查看应用程序布局感兴趣,而是对debugging它的行为更感兴趣。 有一些插件可以将鼠标事件翻译成桌面浏览器中的触摸事件吗?
在像iPhone / iPad / Android这样的触控设备上,用手指点击小button可能很困难。 没有跨浏览器的方式来检测我所知道的CSS媒体查询的触摸设备。 所以我检查浏览器是否支持JavaScript的触摸事件。 到目前为止,其他浏览器还不支持它们,但最新的Google Chrome on dev channel 启用了触摸事件 (即使是非触摸设备)。 我怀疑其他浏览器制造商将会跟随,因为带有触摸屏的笔记本电脑正在来临 。 更新:这是一个Chrome中的错误,所以现在JavaScript检测再次工作 。 这是我使用的testing: function isTouchDevice() { return "ontouchstart" in window; } 问题是,这只会testing浏览器是否支持触摸事件,而不是设备。 有谁知道给予触摸设备更好的用户体验的正确的方式吗? 除了嗅探用户代理。 Mozilla有一个针对触摸设备的媒体查询。 但是在其他任何浏览器中我都没有看到类似的东西: https : //developer.mozilla.org/En/CSS/Media_queries#-moz-touch-enabled 更新:我想避免使用移动/触摸设备的单独的页面/网站。 该解决scheme必须使用对象检测或类似的JavaScript来检测触摸设备,或者包含自定义触摸CSS,而无需用户代理嗅探! 我问的主要原因是为了确保在联系css3工作组之前,今天是不可能的 。 所以请不要回答,如果你不能按照问题的要求;)
我有一个覆盖在许多其他意见的顶部的观点。 我只是用来检测屏幕上的一些触摸,但除此之外,我不希望视图停止下面的其他视图的行为,这是滚动视图,等等。我怎样才能转发所有的触摸这个覆盖视图? 这是UIView的一个subcalss。
我们有我们的图书馆我们运送给我们的客户,我想标记一些方法为“已弃用”,因为我们改变了他们(如苹果在iPhone SDK中)。 我看到__OSX_AVAILABLE_BUT_DEPRECATED预处理器macros映射到__AVAILABILITY_INTERNAL ,映射到__attribute__((deprecated)) … 那么我有点困惑这个东西! 有人知道吗?
在处理浏览器事件时,我已经开始将Safari的touchEvents结合到移动设备中。 我发现addEventListener是与条件相叠加的。 这个项目不能使用JQuery。 标准的事件监听器: /* option 1 */ window.addEventListener('mousemove', this.mouseMoveHandler, false); window.addEventListener('touchmove', this.mouseMoveHandler, false); /* option 2, only enables the required event */ var isTouchEnabled = window.Touch || false; window.addEventListener(isTouchEnabled ? 'touchmove' : 'mousemove', this.mouseMoveHandler, false); JQuery的bind允许多个事件,如下所示: $(window).bind('mousemove touchmove', function(e) { //do something; }); 有没有一种方法来结合两个事件侦听器在JQuery示例? 例如: window.addEventListener('mousemove touchmove', this.mouseMoveHandler, false); 任何build议或提示,表示赞赏!
我试图让我的一些库在触摸设备上工作,但是我很难弄清楚它们是如何得到支持以及如何工作的。 基本上,有5个触摸事件 ,但似乎只有在touchstart事件( touchstart ),移动浏览器的共识。 我创build了一个小提琴作为testing用例。 我已经在Galaxy Note上使用Android 4在我的Galaxy Note上进行了testing,但是您也可以使用桌面浏览器检查链接。 目标是设法弄清楚如何处理水龙头,双击和长水龙头。 没有什么花哨。 基本上,这是发生了什么事情: Android股票浏览器不触发触摸事件。 它只是试图模拟点击鼠标点击,连续发射mousedown , mouseup和click事件,但双击只是放大和缩小页面。 Android版Chrome浏览器会在手指触摸屏幕时触发touchstart事件。 如果它很快被释放,它会触发然后mousedown , mouseup , touchend ,最后click事件。 如果长时间点击 ,大约半秒钟后会touchend和mousedown ,并且在手指抬起时触摸,最后没有click事件。 如果你移动你的手指 ,它触发一次touchmove事件几次,然后触发一个touchcancel事件,事后没有任何事情发生,甚至没有touchend事件时touchend指。 双击会触发放大/缩小function,但事件明智的是它触发组合touchstart – touchevent两次,没有鼠标事件触发。 适用于Android的Firefox会正确触发touchstart事件,并在短时间触发mousedown , mouseup , touchend , click 。 如果长时间点击 ,它将触发mousedown , mouseup和最后touchend事件。 Chrome对于这些东西也是一样的。 但是,如果你移动你的手指 ,如果连续触发(如人们所期望的那样),但是当手指离开事件监听器的元素时不触发touchleave事件,并且在手指离开时不触发touchcancel事件浏览器视口。 对于双击 ,它的行为就像Chrome一样。 Opera Mobile与Chrome和Firefox做同样的事情,但是如果长时间按下,则激活某种共享function,我真的想禁用它。 如果你移动你的手指,或者双击,它的行为就像Firefox一样。 Chrometesting版通常只用于短时间的点击,但是如果长时间点击,则不会再触发mouseup事件,只需touchstart ,然后在半秒钟后touchstart ,然后在手指抬起时触摸。 […]
我试图用jQuery的touchstart事件来获得X位置,与live函数一起使用? 即 $('#box').live('touchstart', function(e) { var xPos = e.PageX; } ); 现在,这确实与'点击'作为事件。 如何在地球上(不使用alpha的 jQuery Mobile)我得到一个触摸事件? 有任何想法吗? 谢谢你的帮助。