Stackoverflow中有关于此主题的一些问题,但是,它们都没有解决我的问题。
我有一个帮助类,我激活相机拍照。这是调用活动的代码:
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(activity.getPackageManager()) != null) {
Image img = new Image();
// crea el archivo en donde se almacenará la foto
File photoFile = null;
try {
photoFile = img.createImageFile(activity.getApplicationContext());
} catch (IOException e) {
Log.e("Photo", e.getMessage());
}
if (photoFile != null) {
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(photoFile));
activity.startActivityForResult(takePictureIntent, ((FormActivity) activity).REQUEST_TAKE_PHOTO);
}
}
当我拍照并按" OK"选项,我看到图像正确存储在路径中(我在使用电话文件管理器浏览时找到它)。当按下" OK"时,实际上会调用活动的onActivityResult,但是使用null Intent,所以我不知道如何获取文件名,以便我可以调整它的大小,然后将其存储在数据库。
我该怎么办? 感谢
编辑:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_TAKE_PHOTO && resultCode == RESULT_OK) {
try {
Bundle extras = data.getExtras();
Uri file = (Uri) extras.get(MediaStore.EXTRA_OUTPUT);
Image img = new Image(file.getPath());
img.resizeImage(200, 200);
//Bitmap imageBitmap = (Bitmap) extras.get("data");
//Image img = new Image();
//mImageView.setImageBitmap(imageBitmap);
}
catch (Exception e)
{
Log.e("TDC@", e.getMessage());
}
}
else
super.onActivityResult(requestCode, resultCode, data);
}