1

私はズームイン/ズームアウト用にこのコードを書きました、そしてそれは2本の指でのみ動作するようにサポートされていますが、それは両方で動作します!そして一般的に奇妙な反応をします!誰もが理由を知っていますか?

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 に答える