既存のカメラアプリケーションから画像をキャプチャし、その画像をカスタマイズされたフォルダに保存して、サムネイルをimageViewに表示しようとしています。ファイルを保存する場所を指定していない限り、カメラはサムネイルを提供します。
返されたインテントからサムネイルを取得できます。
...
Intent i = = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i)
}
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
Bundle extras = intent.getExtras();
Bitmap mImageBitmap = (Bitmap) extras.get("data");
}
または、指定したフォルダーにファイルを保存できます(これは正常に機能します)
...
Intent i = = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra((MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(i)
}
しかし、サムネイルはインテントの余分な「データ」に保存されなくなり、サムネイルを取得しようとするとエラーが発生します(これは私のLogCatからのものです)
10-04 06:30:14.463: E/AndroidRuntime(1967): Caused by: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity: java.lang.NullPointerException
ご覧のとおり、返されるフィールドはビットマップサムネイルではなくnullです。その後、ビットマップをデコードしてファイルからサムネイルを直接生成しようとしましたが、時間がかかりすぎて(ダウンサンプリングしてもメモリ不足エラーが発生します)、2回実行するのは直感に反しているようです。助言がありますか?