700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > android 拍照和选择相册图片剪切

android 拍照和选择相册图片剪切

时间:2021-05-11 06:39:14

相关推荐

android 拍照和选择相册图片剪切

拍照剪切步骤:

新建临时文件启动相机拍照后启动剪切返回剪切结果

新建临时文件

private Uri imageUri;//拍照后剪切用到Uriprivate String picFileFullName;//剪切后图片路径

File outputImage = new File(Environment.getExternalStorageDirectory(), "output_image.jpg");picFileFullName = outputImage.getAbsolutePath();try {if (outputImage.exists()) {outputImage.delete();}outputImage.createNewFile();} catch (Exception e) {e.printStackTrace();}imageUri = Uri.fromFile(outputImage);

启动相机

这个过程有些手机会销毁activity,拍照后回调直接崩溃。自行解决。

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);startActivityForResult(intent, TAKE_PHOTO);

拍照后启动剪切

private void cropImage(Uri uri) {Intent intent = new Intent("com.android.camera.action.CROP");intent.setDataAndType(uri, "image/*");intent.putExtra("crop", true);intent.putExtra("scale", true);intent.putExtra("aspectX", 1);intent.putExtra("aspectY", 1);// outputX outputY 是裁剪图片宽高intent.putExtra("outputX", 650);intent.putExtra("outputY", 650);intent.putExtra("return-data", false);intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "output_image.jpg")));//剪切后直接输出到这个文件,就是替换了刚开始新建的文件。startActivityForResult(intent, PHOTO_CUT_RESULT);}

返回剪切结果

picFileFullName剪切后的图片路径

选择相册图片剪切

新建临时文件启动相册选择图片后启动剪切返回剪切结果

新建临时文件

步骤和拍照一样

启动相册

Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");startActivityForResult(intent, IMAGE_PICK_CODE);

Intent说明:

android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI

这个缺点是如果有图片是同步到google相册的话,图库里面能看到一个auto backup的目录,点进去选图片的话是无法获取到图片的路径的。Google被墙了的。不考虑这么多。

ACTION_GET_CONTENT

在4.4版本中返回图片的URI:content://com.Android.providers.media.documents/document/image:3951类似这样。因此需要判断系统版本进行URI转换。

选择图片后启动剪切

跟拍照剪切一样,剪切后输出的文件直接覆盖开始新建文件

返回剪切结果

picFileFullName剪切后的图片路径

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。