私のコードを@ CommonWareの提案で更新しました。カメラからフルサイズの写真を撮る
private static final String EXTRA_FILENAME = "qamatris.novi.com.tr.EXTRA_FILENAME";
private static final String FILENAME = UUID.randomUUID().toString().replaceAll("-", "");;
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putSerializable(EXTRA_FILENAME, output);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 4) {
Uri uri =Uri.fromFile(output);
Bitmap photo = getScaledBitmapFromUri(ctx, uri);
ByteArrayOutputStream stream2 = new ByteArrayOutputStream();
photo.compress(Bitmap.CompressFormat.PNG, 100, stream2);
byte[] resarray = stream2.toByteArray(); }
***How to call camera intent***
Intent i=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (savedInstanceState==null) {
File dir=Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
dir.mkdirs();
output=new File(dir, FILENAME);
}
else {
output=(File)savedInstanceState.getSerializable(EXTRA_FILENAME);
}
if (output.exists()) {
output.delete();
}
i.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(output));
startActivityForResult(i, CONTENT_REQUEST);
今NullPointerExceptionが取得イム:ファイル "ウリのuri = Uri.fromFile(出力);"出力がnullのため この行(出力=(ファイル)savedInstanceState.getSerializable(EXTRA_FILENAME);)
を。試してみてくださいhttp://stackoverflow.com/q/10042695/4149649 –
@ YuriMisyac takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT、 Uri.fromFile(photoFile)); –