1

私はこのエラーとこのコードへのエラーポイントを受け取り続けます:

ビットマップ=BitmapFactory.decodeByteArray(pic1、0、pic1.length);

画像はsqliteデータベースからのものであり、ユーザーが電話のディレクトリから画像を選択した後に保存されます。写真を取得したいのですが、エラーが発生しました。私の読書から、それはメモリリークが原因です。何か提案/解決策はありますか?

アップデート

画像をデータベースに保存する前に以下のコードを追加すると、問題が解決します。

BitmapFactory.Options opt = new BitmapFactory.Options();

opt.inSampleSize = 8;

ビットマップ=BitmapFactory.decodeFile(path、opt);

返信/回答してくれてありがとう:)

4

2 に答える 2

0

メモリリークが原因である可能性がありますが、メモリを使いすぎている可能性があります。大きな画像はメモリを簡単に消費する可能性があります。問題が発生した場合は画像を縮小して、それでもこれらのエラーが発生するかどうかを確認してください。メモリプロファイラーツールを使用して、リークの可能性を探してみてください。

于 2012-04-19T03:34:07.127 に答える
0

これを試して

BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inTempStorage = new byte[16*1024];

Bitmap bitmapImage = BitmapFactory.decodeFile(imgpath, opt);
于 2012-04-19T05:13:05.643 に答える