lui*_*ero 3 camera android image save
这是我的问题,当我试图从我拍摄的照片中获取Uri时我会在模拟器和我的设备上使用相机获得null,但是如果我使用其他相机应用程序,只能使用系统相机,总是有效.这是我的代码
用于启动相机应用程序
takePic.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
String captured_image = System.currentTimeMillis() + ".jpg";
File file = new File(Environment.getExternalStorageDirectory(), captured_image);
captured_image = file.getAbsolutePath();
outputFileUri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
intent.putExtra("return-data", true);
startActivityForResult(intent, CAMERA_REQUEST);
}
});
Run Code Online (Sandbox Code Playgroud)
获取图像
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST) {
ContentResolver cr = getContentResolver();
InputStream in = null;
try
{
in = cr.openInputStream(outputFileUri);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当活动返回时,outputFileUri始终为null.谢谢.
Pau*_*Jan 11
Android可能会在您进入之前杀死(并重新启动)您的活动onActivityResult,例如因为您在拍照时旋转了设备.尝试outputFileUri使用其余的Activity状态存储和恢复...
protected void onSaveInstanceState(Bundle outState)
{
outState.putParcelable("outputFileUri", outputFileUri);
}
Run Code Online (Sandbox Code Playgroud)
...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
if (savedInstanceState != null)
{
outputFileUri= savedInstanceState.getParcelable("outputFileUri");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2919 次 |
| 最近记录: |