android - 在 Android 中处理多点触摸,例如捏合和捏合

标签 android multi-touch touch-event

我正在尝试实现多点触摸,例如当用户用两根手指向外张开时,我需要处理一个事件并在其他事件中进行捏合。无需放大或缩小。

所以我正在布局上处理 onTouchEvent,但无法获得捏合和捏合的条件。

这是代码,

 layout.setOnTouchListener(new View.OnTouchListener() {
        private int mActivePointerId;
        @Override
        public boolean onTouch(View view, MotionEvent motionEvent) {
            mActivePointerId = motionEvent.getPointerId(0);
            Log.d(TAG, "COUNT"+motionEvent.getPointerCount());
            if(motionEvent.getPointerCount() > 1){
                if((motionEvent.getAction() == motionEvent.ACTION_UP) && (motionEvent.getAction() == motionEvent.ACTION_POINTER_DOWN))
                Log.d(TAG, "Multi Touch Upwards ");
                return true;
            } else if((motionEvent.getAction() == motionEvent.ACTION_DOWN) && (motionEvent.getAction() == motionEvent.ACTION_POINTER_UP)){
                Log.d(TAG, "Multi Touch DownWard ");
                return true;
            }
             else{
                Log.d(TAG, "It is signal Touch");

            }
            return true;
        }
    });

我引用了这个链接,但不是很清楚 example 任何使其工作的建议...谢谢

最佳答案

您可以在ScaleGestureDector的帮助下使其工作。只需检查比例因子,如果比例因子大于 1,则将进行捏合,否则捏合。

这是一个很好的例子,它非常简单并且很适合您的需求, 只需按照此链接 ScaleGestureDector 中的说明进行操作即可

关于android - 在 Android 中处理多点触摸,例如捏合和捏合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26827146/

相关文章:

android - 如何知道用户是否已从 google play 更新 Android 应用程序

Android (ActionBarSherlock) 有没有办法在纵向和横向上保持相同的 ActionBar 高度?

Android Multitouch Dynamic Imageview Drag 只是最近添加的Imageview

Android - 检测长按结束

java - 仅在滚动功能完成后获取项目

java - 更改未聚焦的 ViewPager fragment 中的图像

android - 以编程方式支持 Android 模拟器的多点触控

javascript - D3.js缩放和触摸设备平滑度

javascript - 是否可以通过触摸事件实现 "enter"事件检测?