カメラアプリから写真を取得し、SDに保存してimageViewを設定したい。以下のコードを作りました。保存とimageViewが機能することがあります。ただし、画像がSDに保存され、imageViewが機能しない場合があります。
imageView が動作しない場合、onActivityResult で mOutUri が null になるようです。
clkbutton の SharedPreferences に mOutUri を保存しようとしました。onActivityResult で uri を確認できますが、imageView は機能しません。このとき、mOutUri も null です。
public void clkbutton(View v){
Intent intent = new Intent();
// open camera app
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
// save data in SD card
Date date = new Date();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd-kk-mm-ss");
String newPicFile = df.format(date) + ".jpg";
mNewPicFile = newPicFile;
String outPath = "/sdcard/" + newPicFile;
File outFile = new File(outPath);
mOutUri = Uri.fromFile(outFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, mOutUri);
startActivityForResult(intent, REQUEST_CAPTURE_IMAGE);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
ImageView imageView = (ImageView) findViewById(R.id.image_view);
imageView.setImageURI(mOutUri);
}
時々エラーが発生したり、時には機能したりするのはとても奇妙です。