【发布时间】:2011-10-26 08:17:11
【问题描述】:
我想根据用户的触摸在画布的中心轴上循环旋转。
就像一个旧的电话拨号器。
我想基于中心旋转
但是
现在它基于左上角旋转。所以我只能看到图像旋转的 1/4。
我试过如下
onDraw(Canvas canvas){
canvas.save();
// do my rotation
canvas.rotate(rotation,0,0);
canvas.drawBitmap( ((BitmapDrawable)d).getBitmap(),0,0,p );
canvas.restore();
}
@Override
public boolean onTouchEvent(MotionEvent e) {
float x = e.getX();
float y = e.getY();
updateRotation(x,y);
mPreviousX = x;
mPreviousY = y;
invalidate();
}
private void updateRotation(float x, float y) {
double r = Math.atan2(x - centerX, centerY - y);
rotation = (int) Math.toDegrees(r);
}
【问题讨论】:
-
当前输出是什么?
-
我想基于中心旋转,但它基于左上角旋转。所以我只能看到图像旋转的 1/4。
-
您的问题在这里得到解答:stackoverflow.com/questions/4166917/…
标签: android rotation touch android-canvas