我想了解如何使用单点手势旋转位图图像,请帮忙提供一些解决方案并给出建议。我已经通过http://grishma102.blogspot.in/2013/10/drag-and-drop-functionality-to-move.html的帮助完成了位图的缩放。现在我需要在触摸和旋转调整按钮时旋转整个图像。如何实现它?提前感谢。
一个处理单指旋转的函数,主要思路是计算视图的中心点 centerX 和 centerY,并考虑是否使用状态栏高度。
@Override
public boolean onTouch(View view, MotionEvent event) {
switch (action) {
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_DOWN:
rotateX = event.getRawX();
rotateY = event.getRawY();
centerX = view.getX() + ((View) getParent()).getX() + (float) view.getWidth() / 2;
centerY = view.getY() + statusBarHeight + (float) view.getHeight() / 2;
break;
case MotionEvent.ACTION_MOVE:
newRotateX = event.getRawX();
newRotateY = event.getRawY();
double angle = Math.atan2(event.getRawY() - centerY, event.getRawX() - centerX) * 180 / Math.PI;
view.setRotation((float) angle - 45);
rotateX = newRotateX;
rotateY = newRotateY;
}
}
return true;
}
};