Jas*_*son 5 camera android sd-card android-intent imageview
我想从相机应用程序获取图片,将其保存在SD上并设置imageView.我在下面做了一个代码.保存和imageView有时工作.但有时图片保存在SD上,而imageView不起作用.
当imageView不起作用时,似乎mOutUri在onActivityResult中变为null.
我试图在clkbutton中的sharedPreferences上保存mOutUri.我可以在onActivityResult中看到uri但是imageView不起作用.此时,mOutUri也为空.
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);
}
Run Code Online (Sandbox Code Playgroud)
这有点奇怪,它有时会出错,有时会有效.
在 onActivityResult 中,在 setImageUri 之前,您应该检查文件是否存在。当应用程序改变方向时,您可能会丢失 mOutUri 内容,并且在您打开相机时有时会发生这种情况。您应该在活动 onSaveInstanceState 中实现您的 uri 存储到首选项中,并在 onRestoreInstanceState 中恢复您的 uri。
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |