30
画像をビットマップオブジェクトにロードする際の奇妙なメモリ不足の問題
各行にいくつかの画像ボタンがあるリストビューがあります。リストの行をクリックすると、新しいアクティビティが起動します。カメラのレイアウトに問題があるため、独自のタブを作成する必要がありました。結果に対して起動されるアクティビティはマップです。ボタンをクリックして画像プレビューを起動する(SDカードから画像を読み込む)と、アプリケーションはアクティビティからアクティビティに戻りlistview、結果ハンドラーに戻り、画像ウィジェットにすぎない新しいアクティビティを再起動します。 リストビューの画像プレビューは、カーソルとで行われていますListAdapter。これでかなり簡単になりますが、サイズ変更した画像を配置する方法がわかりません(srcつまり、オンザフライで画像ボタンのようにピクセルではなくビットサイズを小さくします。したがって、電話のカメラから出た画像のサイズを変更しました。 問題は、戻って2番目のアクティビティを再起動しようとすると、メモリ不足エラーが発生することです。 行ごとにリストアダプターを簡単に構築できる方法はありますか? フォーカスの問題のためにタッチスクリーンで行を選択できないため、各行のウィジェット/要素のプロパティにもいくつか変更を加える必要があるため、これは望ましい方法です。(ローラーボールが使用できます。) 帯域外のサイズ変更と画像の保存を実行できることはわかっていますが、それは実際に実行したいことではありませんが、そのためのサンプルコードを使用すると便利です。 リストビューで画像を無効にするとすぐに、再び正常に機能しました。 参考までに:これは私がやっていたことです: String[] from = new String[] { DBHelper.KEY_BUSINESSNAME,DBHelper.KEY_ADDRESS,DBHelper.KEY_CITY,DBHelper.KEY_GPSLONG,DBHelper.KEY_GPSLAT,DBHelper.KEY_IMAGEFILENAME + ""}; int[] to = new int[] {R.id.businessname,R.id.address,R.id.city,R.id.gpslong,R.id.gpslat,R.id.imagefilename }; notes = new SimpleCursorAdapter(this, R.layout.notes_row, c, from, to); setListAdapter(notes); どこにR.id.imagefilenameありますButtonImage。 ここに私のLogCatがあります: 01-25 05:05:49.877: ERROR/dalvikvm-heap(3896): 6291456-byte external allocation too large for this process. 01-25 05:05:49.877: ERROR/(3896): VM …