1) You should avoid to creat a new Matrix every time you call the draw funktion. You can to this by passing a static Matrix Reference to your draw function.
2) Creating bitmaps on a draw Method is not good performance wise. Preload the Images you want up in front. 3) On Canvas drawing you have a special draw Method you should use in combination with a Bitmap and a Matrix: void android.graphics.Canvas.drawBitmap(Bitmap bitmap, Matrix matrix, Paint paint) 4) The Coords of your Bitmap should be set in the Matrix by calling: boolean android.graphics.Matrix.postTranslate(float dx, float dy) boolean android.graphics.Matrix.postRotate(float degrees, float px, float py) Hope this helps Greetings On 24 Sep., 13:22, chaozh <chao...@gmail.com> wrote: > 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! -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en