机器人:怎么捏缩放而不触发点击(ACTION_DOWN) [英] android: how to pinch zoom without triggering a click (ACTION_DOWN)

查看:175
本文介绍了机器人:怎么捏缩放而不触发点击(ACTION_DOWN)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

目前我有我的绘图应用程序,它工作得很好实现变焦。只是一些线条让你知道我在说什么:

Currently I have a zoom implemented for my drawing application which works quite well. Just some lines so you know what I'm talking about:

setOnTouchListener(new OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent rawEvent) {
                WrapMotionEvent event = WrapMotionEvent.wrap(rawEvent);

                // Handle touch events here...
                switch (event.getAction() & MotionEvent.ACTION_MASK) {
                case MotionEvent.ACTION_DOWN:
                    drawSomethingHere();
                case MotionEvent.ACTION_POINTER_DOWN:
                    startZoomingModeHere();
...

所以,我想的是什么:绘制一个手指,用双指缩放。
问题是:总有触发前的第二次击中手指表面的ACTION_DOWN事件。所以每次我要放大,我的应用程序绘制缩放模式启动之前的一个点。

So what I want is: draw with one finger, zoom with both fingers. Problem is: there is always a ACTION_DOWN event triggered BEFORE the second finger hits the surface. So everytime I want to zoom, my app draws a point before the zoom mode is started.

是否有人有一个想法如何解决这个问题?

Does someone has an idea how to solve this?

推荐答案

解决如下:


  1. 借鉴ACTION_UP和ACTION_MOVE而不是ACTION_DOWN

  2. 在ACTION_MOVE不要马上得出,放点在缓冲区,而不是(这将确保你不跨preT意外的单点触摸事件的多点触控事件发生之前)

  3. 只要缓冲液具有3分,开始绘制模式

  4. 只要一个ACTION_POINTER_DOWN事件发生时(发生了多点触控),清除缓冲区,并开始缩放模式

这是我能做到的最好。其结果是pretty说服...

This is the best I could do. The result is pretty convincing...

这篇关于机器人:怎么捏缩放而不触发点击(ACTION_DOWN)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆