Я хочу вращать холст по кругу вокруг его центральной оси в зависимости от прикосновения пользователя.
Как старый номеронабиратель телефона.
Я хочу поворачивать по центру
но
Теперь его вращение основано на верхнем левом углу. Так что я могу видеть только 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);
}