1

ボタンのクリックで画面の背景画像を回転させています。

Bitmap rotatedBitmap = null;
int curAngle = 0;

private Bitmap rotateImageBitmap(Bitmap org) {      

    if(rotatedBitmap != null  )
    {
        rotatedBitmap.recycle();
    }

    Matrix matrix = new Matrix();
    curAngle += 90;
    matrix.postRotate(curAngle);
    rotatedBitmap =  Bitmap.createBitmap(org, 0, 0,  org.getWidth(),  org.getHeight(), matrix, true);

    return rotatedBitmap;        
}

5回目のボタンクリックでアプリ強制終了。(画像は 4 回回転しています)
Logcat : リサイクルされたビットマップを使用しようとしています。私を助けてください。

4

2 に答える 2

0

これは開発者ガイドからのものです....

  1. 通常、モバイル デバイスのシステム リソースには制約があります。Android デバイスでは、1 つのアプリケーションで使用できるメモリはわずか 16 MB です。

  2. ビットマップは、特に写真のようなリッチ イメージの場合、大量のメモリを消費します。たとえば、Galaxy Nexus のカメラは、最大 2592x1936 ピクセル (5 メガピクセル) の写真を撮影します。使用されるビットマップ構成が ARGB_8888 (Android 2.3 以降のデフォルト) である場合、このイメージをメモリにロードすると、約 19MB のメモリ (2592*1936*4 バイト) が必要になり、一部のデバイスではアプリごとの制限をすぐに使い果たします。

于 2012-06-24T09:37:00.390 に答える
0

最大角度は 360 度で、5 回クリックするとコードが角度 = 450 に設定されますが、これは有効ではありません。角度が 360 度に達したら角度をリセットしてみてください。

于 2012-06-15T09:26:38.020 に答える