Articles of 触摸

获取正在接收所有触摸事件的视图

我有一个系统覆盖,位于所有Activities和Windows 。 唯一的问题是,当用户把他/她放在屏幕上时,它只能检测到MotionEvents (它不能跟踪手指的移动或检测到手指抬起时)。 作为一个可能的解决scheme,我实现了第二个视图(我称之为跟踪视图),它能够处理所有的触摸事件,但保持隐藏状态,直到系统覆盖层检测到所需位置的触摸; 在这种情况下,它会提出跟踪观点。 唯一的问题是,直到用户将他/她的手指放回到屏幕上,跟踪视图才开始检测触摸事件。 因此,为了解决这个问题,我想拦截获取触摸事件的视图(这是系统覆盖下的视图),并将其所有的触摸事件转发给跟踪视图进行处理。 有谁知道我怎样才能得到接收所有的触摸事件,并redirect它所接收的所有触摸事件的观点? 这个问题是指在这个问题中使用的例子。

滚动滞后与手势检测器滚动

我使用GestureDetector来实现自定义View内的滚动。 我的实现是基于这个: 平滑滚动与惯性和边缘阻力/ snapback 在滚动开始之前,我注意到了一个短暂的停顿:我检查了onScroll消息,并注意到第一个只是在手指移动较大之后到达,这会在滚动开始时引起显着的滞后。 之后,滚动顺利。 看来GestureDetector开始发送onScroll消息只有在motionevents之间的最小距离,以确保手势不是一个龙舌兰或轻拍(顺便说一句我setIsLongpressEnabled(false) )。 有没有办法改变这种行为,并创build一个平滑的滚动,而不使用低级别的触摸事件实现自定义滚动手势?

在Android中触摸屏幕时发光?

当我触摸屏幕的那一点,会发光(只是闪光或闪闪发光)一段时间。 怎么做? 任何例子或想法? 我必须实现把button放在上面。 正是当我触摸屏幕,它会发光一些时间,然后button将出现在我触摸点。

在手指已经触摸屏幕的同时显示自己的对话框上获取触摸事件

我有一个长按聆听者的观点。 这触发了全屏对话框的显示。 我需要捕捉所述对话(特别是ACTION_UP )上的触摸事件,但由于ACTION_DOWN被第一个视图捕获,并从未被释放,我没有得到任何事件的对话框。 除了在ACTION_UP发生时告诉对话框的视图上的监听器之外,您是否还知道在这种情况下从对话框的angular度来看另一种检测ACTION_UP方法?

onSingleTapConfirmed和onSingleTapUp之间的区别

onSingleTapUp中的GestureDetector.SimpleOnGestureListener和onSingleTapUp什么区别? 其中哪一个类似于onClick方法?

Activity的onTouchEvent()在点击Button时没有被调用

我想在Activity.onTouchEvent()方法中做一些B.logic。 它为TextView和其他非可点击的视图工作正常。 但是,它并没有被调用Button的Button 。 但我也需要这个。 这是代码。 public class MainActivity extends Activity { private static final String TAG = MainActivity.class.getSimpleName(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "Oh shit!! click performed… :(", Toast.LENGTH_LONG).show(); } }); } @Override public boolean onTouchEvent(MotionEvent event) { Log.d(TAG, "ssssssssssssssssssssssss:touch"); return […]

相机AF_TRIGGER_START不会开始对触摸进行对焦

我有一个摄像头的应用程序使用camera2 Api,我实现onTouchListener的TextureView我用于从相机预览,我想要的是当用户点击屏幕,能够专注于完全像在Android相机内置的区域。 我不知道它是怎么回事,当我使用AF_MODE_AUTO,但它不是精确的,它只关注屏幕中心的什么。 这里是我的代码: mTextureView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction() & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: Rect rect = cameraCharacteristics .get(CameraCharacteristics.SENSOR_INFO_ACTIVE_ARRAY_SIZE); Size size = cameraCharacteristics .get(CameraCharacteristics.SENSOR_INFO_PIXEL_ARRAY_SIZE); int areaSize = 200; int right = rect.right; int bottom = rect.bottom; int viewWidth = mTextureView.getWidth(); int viewHeight = mTextureView.getHeight(); int ll, rr; […]

我可以窃听Android触摸事件吗?

我正在检测手势并触摸Android设备。 问题是,我的应用程序将需要检测自己的视图之外,在其他应用程序,甚至主屏幕上的这些手势。 换句话说,有没有一种方法来窃听触摸事件? 我会想象有一些安全措施阻止这一点。 我只需要certificate这个概念,所以我会在开发设备上尝试这种方法,在这种设备上我可以禁用任何可能阻止我这样做的安全性(不会对任何人造成伤害或暴露他们的数据)。

获取触摸事件时如何禁用移动阈值?

我正在创build一个使用触摸input的Android游戏。 我注意到,当我放下一个手指并移动它时,会有一个像素的阈值,直到生成第一个MotionEvent.ACTION_MOVE 。 什么是禁用此阈值filter的正确方法?

Touchend touchmove后不开火

我试图为移动设备创build一个页面,检测scrollTop位置,如果scrollTop小于文档高度的一半,则滚动到页面的顶部,如果不滚动则滚动到底部。 我已经实现了这一点: var ScrollTimeout; $(window).on('scroll',function(){ clearTimeout(ScrollTimeout); ScrollTimeout = setTimeout(scrollToTopOrBottom,200); }); 问题是超时会在用户停止滚动时触发,但手指仍然在屏幕上。 然后,我和touchend事件一起工作,这很棒。 $(document).on('touchend',function(){ scrollToTop(); }); 用户可以停止滚动(手指仍然在屏幕上),然后继续滚动而不触发scrollToTopOrBottom()函数。 问题是,这个事件在浏览器之间是无效的: 在某些浏览器(Maxthon和Android)中, touchend事件按预期工作,但在Opera Mobile和Chrome中, touchend事件不会触发。 对此的解释是touchend不会触发,因为touchcancel已经被触发了 。 我已经试过了 $(document).on('touchmove',function(e){ e.preventDefault(); }); 并成功地避免了touchcancel的触发,但不幸的是也避免了滚动的自然行为。 有谁知道这是如何实现的? 我完全没有想法。 谢谢。