5

私はSamsungGalaxyS3を所有しています。これは、最大3000 x 2000のサイズの画像をキャプチャできます。また、現在、写真のキャプチャが必要なアプリケーションを開発しています。私は自分の電話をデバッガーとして使用し、デバイスが画像をキャプチャするために提供する可能な限り最高のサイズを設定します。

ただし、この設定を使用すると、コールバックは、キャプチャされたバイトをビットマップにデコードしようとするメソッドonPictureTakenの最初の行でメモリ不足エラーを出します。Bitmap.decodeByteArrayを使用するBitmap.Options.inSampleSize = 2と、メモリ不足エラーは発生しません。

私は、アプリケーションがデバイスが提供する最高のものをキャプチャできるようにしたいのですが、デバイスはそれ自体のカメラアプリケーションでこれを実行しますが、私にはできません。理解できない。どうすればこの問題を克服できますか?

4

2 に答える 2

1

http://www.youtube.com/watch?v=_CruQY55HOk . Android カスタム ビュー ビットマップ メモリ リーク。こちらの動画もご覧ください。役立つはずのMATアナライザーについて話します。使用していないビットマップもリサイクルする

于 2012-12-05T14:14:54.230 に答える
0

Android のアプリケーションは、16 MB 前後のメモリで動作する必要があります。そのままの画質を得るために inSampleSize を非常に大きな数値に設定する場合、またはサンプリングを実行しない場合は、メモリ不足の例外が発生する可能性があります。

このリンクとサンプル アプリケーションを確認してください: Displaying Bitmaps Efficiently

于 2012-12-05T14:30:07.383 に答える