2011-12-28 6 views
1

私のアンドロイドアプリでは、カメラでImageViewキャプチャの画像を設定しました。そのうまく動作します。しかし、私はイメージをキャプチャし、画面に戻ってイメージビューでそのイメージを設定すると、私はこれを3から4時間行う場合は、このエラービットマップサイズは、VMの予算を................ ...それにはどんな解決策も必要です。ビットマップのサイズVM予算を超えていますandroid

this is my code below : 

BitmapFactory.Options options = new BitmapFactory.Options(); 
       options.inSampleSize = 4; 
       options.inTempStorage = new byte[16 * 1024]; 
       image_from_camera.setImageBitmap(BitmapFactory.decodeFile(
       "/sdcard/"+chore_string+".jpg", options)); 

i have done using bitmap.recycle(); or System.gc(); 

しかし、これは機能しません。私は再びカメラのボタンをクリックすると、アプリで2番目の写真を撮るためにビットマップからメモリを解放する必要があります。何か助けが必要です........

ほんとにありがとうございます。 ...

答えて

1

inSampleSizeの値を大きくすると、イメージのロードに必要なメモリオーバーヘッドが減少します。それを8,12または16に変更してください。画像が最終的にロードされるはずですが、非常に見栄えが悪いかもしれません。

しかし、負荷の前に良いメモリを使用しているようです。

System.getRuntime()を使用してランタイムを取得し、最大メモリ、合計メモリ、および空きメモリがどれだけのスペースを持つかを確認します。

この割り当ての前にメモリがリークしている可能性があります。また

http://developer.android.com/reference/java/lang/Runtime.html

(うるさく)あなたは、ランタイム・コールに表示されます使用しているメモリのすべての3.0アンドロイドいないを実行することはできません、デバイスを使用している場合。メモリ使用量をより完全に理解するために3.0デバイスを使用することを検討してください。

関連する問題