As we know, we can rotate a bitmap through 2 ways.
The 1st way is:
Matrix mt = new Matrix();
mt.postRotate(degree);
Bitmap bitmap = CreateBitmap(src, 0, 0, w, h, mt, true);
canvs.drawBitmap(bitmap, 0, 0, paint);
In this way, we always need create new bitmap for every rotation, it is not good way for high performance game or app.
The 2nd way is:
canvas.save();
canvas.rotate(degree);
canvas.drawBitmap(bitmap, 0, 0, paint);
canvas.restore();
In this way, we avoid creating new bitmap frequently, but the rotation bitmap is distortion, the bitmap quality is worse than first way.
So, Is there 3rd way to rotate bitmap with high performance and good quality?
Your any comments are really appreciated!
Make sure that you providing Paint
to canvas.drawBitmap(bitmap, 0, 0, paint)
.
And don't forget to use anti-alias and bitmap filtering:
paint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With