これは奇妙でばかげた質問のように聞こえるかもしれません。しかし、聞いてください。
Android アプリケーションは、少なくとも T-Mobile G1 では、16 MB のヒープに制限されています。
また、画像を (ビットマップ形式で) 保存するには、1 ピクセルあたり 4 バイトかかります。
public void onPictureTaken(byte[] _data, Camera _camera) {
Bitmap temp = BitmapFactory.decodeByteArray(_data, 0, _data.length);
}
したがって、1 つの画像は 6 メガピクセルで 24 MB のヒープを占有します。(キューメモリオーバーフロー)。
今では、パラメーターを使用してデコードし、画像のサイズを効果的に縮小できることをよく知っています。希望のサイズに縮小する方法もあります。
しかし、カメラを高品質のカメラとして使用したい場合はどうでしょうか。
この画像をデータベースに入れる方法がわかりません。デコードするとすぐにエラーになります。
注:保存する前に回転できるように、ビットマップに変換する必要があります(?)。
要約すると:
- 16MB のヒープに制限
- イメージは 24MB のヒープを占有します
- 画像を取得して操作するための十分なスペースがありません
これは問題に対処しませんが、ある場所から画像をロードするだけの人には出発点としてお勧めします: Displaying Bitmaps on android