public boolean onTouchEvent(MotionEvent event) { |
switch (event.getAction() & MotionEvent.ACTION_MASK) { |
case MotionEvent.ACTION_DOWN: |
mode = DRAG; |
x_down = event.getX(); |
y_down = event.getY(); |
savedMatrix.set(matrix); |
break ; |
case MotionEvent.ACTION_POINTER_DOWN: |
mode = ZOOM; |
oldDist = spacing(event); |
oldRotation = rotation(event); |
savedMatrix.set(matrix); |
midPoint(mid, event); |
break ; |
case MotionEvent.ACTION_MOVE: |
if (mode == ZOOM) { |
matrix1.set(savedMatrix); |
float rotation = rotation(event) - oldRotation; |
float newDist = spacing(event); |
float scale = newDist / oldDist; |
matrix1.postScale(scale, scale, mid.x, mid.y); // 縮放 |
matrix1.postRotate(rotation, mid.x, mid.y); // 旋轉 |
matrixCheck = matrixCheck(); |
if (matrixCheck == false ) { |
matrix.set(matrix1); |
invalidate(); |
} |
} else if (mode == DRAG) { |
matrix1.set(savedMatrix); |
matrix1.postTranslate(event.getX() - x_down, event.getY() |
- y_down); // 平移 |
matrixCheck = matrixCheck(); |
matrixCheck = matrixCheck(); |
if (matrixCheck == false ) { |
matrix.set(matrix1); |
invalidate(); |
} |
} |
break ; |
case MotionEvent.ACTION_UP: |
case MotionEvent.ACTION_POINTER_UP: |
mode = NONE; |
break ; |
} |
return true ; |
} |
初级程序员
by: Cooper 发表于:2013-04-17 16:38:34 顶(1) | 踩(0) 回复
网友回复
回复小蜜锋 : 嘿嘿
顶(0) 踩(0) 2013-04-20 10:53:42
回复评论