Domyślnie punkt rotacja jest (0,0) punkt płótna, a wydaje mi się, że może chcesz obrócić go wokół centrum. Zrobiłem to:
protected void renderImage(Canvas canvas)
{
Rect dest,drawRect ;
drawRect = new Rect(0,0, mImage.getWidth(), mImage.getHeight());
dest = new Rect((int) (canvas.getWidth()/2 - mImage.getWidth() * mImageResize/2), // left
(int) (canvas.getHeight()/ 2 - mImage.getHeight()* mImageResize/2), // top
(int) (canvas.getWidth()/2 + mImage.getWidth() * mImageResize/2), //right
(int) (canvas.getWidth()/2 + mImage.getHeight()* mImageResize/2));// bottom
if(!mRotate) {
canvas.drawBitmap(mImage, drawRect, dest, null);
} else {
canvas.save(Canvas.MATRIX_SAVE_FLAG); //Saving the canvas and later restoring it so only this image will be rotated.
canvas.rotate(90,canvas.getWidth()/2, canvas.getHeight()/ 2);
canvas.drawBitmap(mImage, drawRect, dest, null);
canvas.restore();
}
}
I odpowiedziałeś to tutaj: http://stackoverflow.com/questions/8608734/android-rotate-bitmap-9 0-stopni-wyników-w-zmiażdżony-obraz-potrzeba-a-prawdziwy-obrót-b/14475148 # 14475148 – EyalBellisha