android调用系统的自定义裁剪后得到的图片不清晰,使用MediaStore.EXTRA_OUTPUT获取缓存下的清晰图片...
发布日期:2021-05-28 05:49:52 浏览次数:26 分类:精选文章

本文共 1868 字,大约阅读时间需要 6 分钟。

方式如下,可以直接设置裁剪宽和高比例,并通过自定义路径保存剪切后的图片,避免占用内存。具体实现方式如下:

  • onActivityResult方法中处理剪切结果。例如,使用requestCode1处理剪切后的结果。

  • 调用photoClip方法,使用系统自带的剪切工具,并通过设置return-data=false来禁用data域返回。

  • 在剪切意图中添加EXTRA_OUTPUT参数,指定一个自定义的文件路径和文件名,便于存储剪切后的图片。

  • onActivityResult中根据返回的requestCode调用方法处理剪切数据。

  • 代码如下:

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch (requestCode) {
    case RESULT_CANCELED:
    ToastUtil.showCenter(R.string.cancel);
    return;
    case 111:
    if (USER_ICON.exists()) {
    photoClip(Uri.fromFile(USER_ICON), 1, this);
    }
    break;
    case 1:
    try {
    BitmapFactoryOptions options = new BitmapFactoryOptions();
    options.inPreferredSize = new int[]{160, 160}; // 可以根据需要调整尺寸
    BitmapFactory.decodeStream(getContentResolver().openInputStream(tempPhotoUri),
    options);
    } catch (Exception e) {
    // handle exception,如图片未找到等
    }
    break;
    }
    super.onActivityResult(requestCode, resultCode, data);
    }

    此外,在剪切设置中可以设置默认的裁剪宽高比等参数:

    public void photoClip(Uri uri, int requestCode, Activity a) {
    Intent intent = new Intent();
    intent.setAction("com.android.camera.action.CROP");
    intent.setDataAndType(uri, "image/*");
    intent.putExtra("crop", "true");
    intent.putExtra("aspectX", 3); // 比例比如1:1是9,常用比例如3:4为12等
    intent.putExtra("aspectY", 4); // 比例
    intent.putExtra("outputX", 320);
    intent.putExtra("outputY", 320);
    intent.putExtra("return-data", false);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri());
    intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
    intent.putExtra("noFaceDetection", true);
    a.startActivityForResult(intent, requestCode);
    }

    通过以上设置,可以实现自定义剪切并存储在指定路径,避免卡顿问题。

    上一篇:1003 Emergency (25分)
    下一篇:Android资源访问

    发表评论

    最新留言

    网站不错 人气很旺了 加油
    [***.192.178.218]2025年05月04日 07时48分02秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章