我希望能够用相机拍照。我这样做是有效的:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, CAMERA_REQUEST);
在此成功之后,我希望用户能够立即查看图像并能够裁剪。
我可以这样做:
Intent cropIntent = new Intent("com.android.camera.action.CROP");
cropIntent.setDataAndType(Uri.fromFile(new File(file.toString())), "image/*");
cropIntent.putExtra("crop", "true");
cropIntent.putExtra("aspectX", 1);
cropIntent.putExtra("aspectY", 1);
cropIntent.putExtra("outputX", 256);
cropIntent.putExtra("outputY", 256);
cropIntent.putExtra("return-data", true);
startActivityForResult(cropIntent, CAMERA_REQUEST);
如何合并这两项任务,让它们一个接一个地发生?我必须有两个startActivityForResult
吗?它应该合并吗?或者croppin ginfo是否应该在正常范围内?
getActivity();
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
// Cropping code here? another intent?
iPP.setImageBitmap(BitmapFactory.decodeFile(file.toString()));
imagePath = file.toString();
scaleImage();
new UploadImage().execute();
}
答案 0 :(得分:1)
创建一个名为CAMERA_CROP的新常量。
拍摄照片后开始活动时,请发送CAMERA_CROP请求代码。
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
...
startActivityForResult(cropIntent, CAMERA_CROP);
}
从裁剪活动返回时,请处理请求代码。
if (requestCode == CAMERA_CROP && resultCode == Activity.RESULT_OK) {
...
}