1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > android调用系统裁剪图片 返回模糊 不清晰的问题

android调用系统裁剪图片 返回模糊 不清晰的问题

时间:2022-10-20 07:42:50

相关推荐

android调用系统裁剪图片 返回模糊 不清晰的问题

基本这个功能都是在头像设置的时候会用到

Android 从相机拍完照片 然后跳去系统自带的裁剪 或者从相册选取图片裁剪 然后把裁剪好的图片设置成头像

这里直接贴上跳到裁剪部分的代码

private void photoClip(Uri uri) {// 调用系统中自带的图片剪裁Intent intent = new Intent("com.android.camera.action.CROP");intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);intent.setDataAndType(uri, "image/*");// 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪intent.putExtra("crop", "true");intent.putExtra("scale", true);// aspectX aspectY 是宽高的比例//这个是处理华为裁剪是圆形框的问题if (Build.MANUFACTURER.equals("HUAWEI")) {intent.putExtra("aspectX", 9998);intent.putExtra("aspectY", 9999);} else {intent.putExtra("aspectX", 1);intent.putExtra("aspectY", 1);}// outputX outputY 是裁剪图片宽高 这个值越大清晰度越高 但是太大了会崩intent.putExtra("outputX", 800);intent.putExtra("outputY", 800);intent.putExtra("return-data", false);uritempFile = Uri.parse("file://" + "/" + Environment.getExternalStorageDirectory().getPath() + "/" + System.currentTimeMillis() + ".jpg");intent.putExtra(MediaStore.EXTRA_OUTPUT, uritempFile);intent.putExtra("outputFormat", pressFormat.JPEG.toString());intent.putExtra("noFaceDetection", true);startActivityForResult(intent, CLIP_PHOTO_BY_SELF_REQUEST_CODE);}

注释都写了 然后下面是在onActivityResult里面获取裁剪之后图片的方法

@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode != RESULT_OK) return;switch (requestCode) {case CLIP_PHOTO_BY_SELF_REQUEST_CODE:if (uritempFile != null) {bitmap = decodeUriBitmap(uritempFile);}}break;}}private Bitmap decodeUriBitmap(Uri uri) {Bitmap bitmap = null;try {bitmap = BitmapFactory.decodeStream(getActivity().getContentResolver().openInputStream(uri));} catch (FileNotFoundException e) {e.printStackTrace();return null;}return bitmap;}

大功告成

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