画面にスプライト シート アニメーションを描画しようとしていますが、このコードを使用していたときは問題なく動作していました。
    canvas.drawColor(Color.TRANSPARENT);
    Rect src = new Rect(CurrentSprite.x * SheetSize.x, CurrentSprite.y * SheetSize.y, (CurrentSprite.x * SheetSize.x) + SheetSize.x, (CurrentSprite.y * SheetSize.y) + SheetSize.y);
    Rect dst = new Rect(X, Y, X + SheetSize.x, Y + SheetSize.y);
    canvas.drawBitmap(bmp, src, dst, null);
ただし、画面に描画する前に画像を回転させる必要があります。コードを変更して、スプライトのローカル コピーを作成します。これを描くつもりですが、ここで問題が発生します。Bitmap.createBitmap メソッドを使用していますが、画面を見ると完全なスプライト シートが画面に描画され、OutOfMemoryException が発生することがあるため、このメソッドは何もしないようです (完全な画像が非常に大きいため理解できます)。
    canvas.drawColor(Color.TRANSPARENT);
    Matrix matrix = new Matrix();
    matrix.postRotate(Degrees);
    Bitmap tempAnimationBmp = Bitmap.createBitmap(bmp, CurrentSprite.x * SheetSize.x, CurrentSprite.y * SheetSize.y, (CurrentSprite.x * SheetSize.x) + SheetSize.x, (CurrentSprite.y * SheetSize.y) + SheetSize.y, matrix, true);
    canvas.drawBitmap(tempAnimationBmp, X, Y, null);
    tempAnimationBmp.recycle();
完全なスプライト シートを取得するのはなぜですか?