1

我为放大/缩小编写了这段代码,它只适用于两个手指,但它适用于两个手指!一般反应很奇怪!任何人都知道为什么?

boolean surfaceTouchEvent(MotionEvent event) {
  pointNum=event.getPointerCount();
  switch (event.getAction() & MotionEvent.ACTION_MASK) {
  case MotionEvent.ACTION_POINTER_DOWN:
    x1=event.getX(0);
    x2=event.getX(1);
    y1=event.getY(0);
    y2=event.getY(1);
    z4 = dist(x1, y1, x2, y2);
    println("z4 is : "+z4);
    mode = true; // pinch
    break;
  case MotionEvent.ACTION_MOVE:
    if (mode = false) {
      x3=event.getX(0)-x0;
      y3=event.getY(0)-y0;
    }  

    if (mode = true) {
      x1=event.getX(0);
      x2=event.getX(1);
      y1=event.getY(0);
      y2=event.getY(1);
      float z3 = dist(x1, y1, x2, y2);
      println("z3is :" + z3);
      if ( z3 < z4 ) { 
        zoom = z3/z4;
        println(" zoom :" + zoom);
      }
      else if ( z3 > z4) {
        zoom = z3/z4;
        println(" zoom :" + zoom);

      }
    }
    break;
  }
  return super.surfaceTouchEvent(event);
}
4

1 回答 1

0

不知道原因,但如果你想要捏缩放的代码,这里有一个链接。这对我来说可以。

Android 图像视图捏缩放

于 2012-06-19T10:43:05.590 回答