欢迎来到Android 解说界csdn,我是解说apple ,Android 界的剪裁可谓多的一批,众多的第三方依赖=------ ,但是 ,
今天我们讲一讲 Android调用 系统剪裁的 坑 以及流程。
首先 说下一坑, 但凡能看到这篇文章的,大多是遇到了一个鬼问题, made 为什么我 调用相机拍照之后的 path ,在剪裁界面打不开呢,good,
检查一下你的代码:
intent.setType("image/*");
intent.setData(Uri.fromFile(file_put));
看一下你代码中有没有这两行,如果有, 替换成:
intent.setDataAndType(Uri.fromFile(file_put), "image/*");
好了, 看到这里,有这个问题的人 可以先撤了,去忙你们自己的事吧,
下面我们开始正题, 从Android入门到 删数据库到跑路,
哦,不好意思,说错了,是 开始Android剪裁流程:
第一步:
// 打开相册
private void showPic() {
Intent albumIntent = new Intent(Intent.ACTION_PICK, null);
albumIntent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(albumIntent, REQUEST_ALBUM_OK);
}
/**
* 选择相机
*/
private void showCamera() {
// 跳转到系统照相机
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (cameraIntent.resolveActivity(getPackageManager()) != null) {
// 设置系统相机拍照后的输出路径
// 创建临时文件
String cameraPath = LocalImageHelper.getInstance().setCameraImgPath();
File file = new File(cameraPath);
uri_pic = cameraPath;
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(cameraIntent, REQUEST_CAMERA);
} else {
}
第二步:
final int REQUEST_CAMERA = 1;
final int REQUEST_ALBUM_OK = 2;
final int REQUEST_CAMERA_CROP = 3;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_CAMERA:
//请求相机
if (resultCode != Activity.RESULT_OK) {// result is not correct
return;
} else {
String cameraPath =“”;
File file = new File(cameraPath);
File file_put = new File(uri_pic);
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(Uri.fromFile(file_put), "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 10);
intent.putExtra("aspectY", 9);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
intent.putExtra("scale", true);
intent.putExtra("return-data", false);
startActivityForResult(intent, REQUEST_CAMERA_CROP);
}
break;
case REQUEST_ALBUM_OK:
//请求相册
if (resultCode == Activity.RESULT_OK) {
String cameraPath = LocalImageHelper.getInstance().setCameraImgPath2();
File file = new File(cameraPath);
Uri selectedImage = data.getData();
Intent intent = new Intent("com.android.camera.action.CROP");
intent.putExtra("crop", "true");
intent.setDataAndType(selectedImage, "image/*");
intent.putExtra("aspectX", 10);
intent.putExtra("aspectY", 9);
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
intent.putExtra("scale", true);
intent.putExtra("return-data", false);
startActivityForResult(intent, REQUEST_CAMERA_CROP);
}
break;
case REQUEST_CAMERA_CROP:
//剪裁返回
if (resultCode != Activity.RESULT_OK) {// result is not correct
return;
} else {
Glide.with(SignUpInfoActivity.this).load(uri_pic_crop).placeholder(R.drawable.image_default).into(img_sign_upload);
}
break;
}
}
第三步; 装完比,下班跑路..,兄弟们,下期再会。