【发布时间】:2014-01-17 15:54:41
【问题描述】:
我正在做一个 android 应用程序,其中我有一个功能,我需要打开相机并拍照。拍照后 onActivityResult 不会被调用。我的屏幕只保持在相机状态。
我的代码:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File mediaFile = new File(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI.getPath());
Uri imageUri = Uri.fromFile(mediaFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(intent, 1);
onActivityResult 代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data != null && !data.toString().equalsIgnoreCase("Intent { }"))
switch (requestCode) {
case 1:
Log.i("StartUpActivity", "Photo Captured");
Uri uri = data.getData();
String imgPath = getRealPathFromURI(uri);
bitmap = (Bitmap) data.getExtras().get("data");
MediaStore.Images.Media.insertImage(getContentResolver(),
bitmap, null, null);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
img1.setImageBitmap(bitmap);
}
}
【问题讨论】:
-
使
super.onActivityResult()成为onActivityResult()覆盖方法的最后一条指令。参考这个android指南来检查它:developer.android.com/guide/topics/media/camera.html尝试添加一些日志来验证是否真的调用了onActivityResult -
在看之前我已经回答了这个问题:stackoverflow.com/a/30266776/1531683
标签: android bitmap android-camera onactivityresult