如何检测ImageView上的第二根手指触摸?

时间:2012-11-13 12:01:01

标签: android

如何检测多点触控事件?我尝试的代码是:

ImageView im = (ImageView) findViewById(R.id.imageView1);
im.setOnTouchListener(new OnTouchListener() {
  @Override
  public boolean onTouch(View v, MotionEvent event) {
    switch (event.getAction() & MotionEvent.ACTION_MASK) {
      case MotionEvent.ACTION_POINTER_DOWN:
        Log.e("case MotionEvent.ACTION_POINTER_DOWN","case MotionEvent.ACTION_POINTER_DOWN");
        break;
      case MotionEvent.ACTION_DOWN:
        Log.e("case MotionEvent.ACTION_DOWN","case MotionEvent.ACTION_DOWN");
        break;
      case MotionEvent.ACTION_UP:
        Log.e("case MotionEvent.ACTION_UP","case MotionEvent.ACTION_UP");
        break;
      case MotionEvent.ACTION_MOVE:
        Log.e("case MotionEvent.ACTION_MOVE","case MotionEvent.ACTION_MOVE");
        break;
    }
    return false;
  }
});

它检测到第一次触摸,日志cat中的输出是MotionEvent.ACTION_POINTER_DOWN。如何知道是否发生了第二次触摸?

2 个答案:

答案 0 :(得分:2)

您应该在xml布局文件中向imageView添加以下行:

android:longClickable="true"

这样可以实现长时间点击和其他活动。

答案 1 :(得分:2)

有很多方法可以做到这一点,所以你可以选择其中一个链接,编写一个完整的应用程序来处理多点触控。

multitouch

multi-touch-handling