Android 多点触控和双击协同工作以实现 ImageView

标签 android double multi-touch tap

嗨 我在 LinearLayout(垂直方向)中有两个 ImageView 。我正在为两个 Imageview 设置 setOnTouchListener 。 这样我就能够观察多点触摸缩放以及 ImageView 的所有拖动。 当我尝试实现 OnDoubletapListener 时,问题就出现了。 OnDoubleTapListener 仅在不使用 setOnTouchListener 的情况下工作。

但是,如果我评论 setOnTouchListner 那么我就可以执行双击..

两个功能不能同时工作吗???

如果您愿意,我也可以提供源代码.. 请帮忙

安基特·维尔玛

最佳答案

我也遇到过同样类型的问题......我用这种方式解决......

如果您使用 Android mutitouch Controller http://code.google.com/p/android-multitouch-controller/用于多点触控

和手势检测器 http://www.41post.com/4194/programming/android-detecting-double-tap-events用于双击

在 MultiTouchController.java 中更新此步骤

--> 导入

  import android.view.GestureDetector.OnDoubleTapListener;

  import android.view.GestureDetector.OnGestureListener;

-->实现

 public class MultiTouchController<T> implements OnGestureListener{

-->

public MultiTouchController(MultiTouchObjectCanvas<T> objectCanvas2, boolean handleSingleTouchEvents) {

           //....

    gd = new GestureDetector(this);

    // set the on Double tap listener
    gd.setOnDoubleTapListener(new OnDoubleTapListener() {
        @Override
        public boolean onDoubleTap(MotionEvent e) {
            // set text color to green
            Log.d("CLICK", "double taped");



            return false;
        }

        @Override
        public boolean onDoubleTapEvent(MotionEvent e) {
            // if the second tap hadn't been released and it's being moved
            if (e.getAction() == MotionEvent.ACTION_MOVE) {
                Log.d("CLICK", "double tap event ACTION_MOVE");
            } else if (e.getAction() == MotionEvent.ACTION_UP)// user
                                                                // released
                                                                // the
                                                                // screen
            {
                Log.d("CLICK", "double tap event ACTION_UP");
            }
            return false;
        }

        @Override
        public boolean onSingleTapConfirmed(MotionEvent e) {
            // set text color to red
            Log.d("CLICK", "single taped");

            return true;
        }
    });

--> 在 onTouch(MotionEvent event) 处将触摸事件设置为 gd

   public boolean onTouchEvent(MotionEvent event) {

    gd.onTouchEvent(event);

    try {

               //.....

不要更改任何其他文件。

现在测试...希望你解决问题...必须回复...

关于Android 多点触控和双击协同工作以实现 ImageView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4604011/

相关文章:

android - 尝试使用 uiautomatorviewer 拍摄快照时出现“adb not installed”错误

java - 问 : How to use OnClickListener with HorizontalScrollView

android - 如何在使用 Android WebView 加载带有 css 的 xml 时动态更改样式?

c - 奇怪/简单的 C 错误

C - 双模整数的下限

android - 哪些 Android 设备/版本组合支持/不支持浏览器中的多点触控手势?

android - 如何设置新的GRADLE版本

c# - 在 C# 中将字符串数组转换为 float 组

android - 如何通过在鳍状肢中启用多点触控缩放来进行 webview 滑动手势检测

iphone - 如何确定多点触控场景中最后一次触摸的x&y?