davexa 2022-12-17 17:08 采纳率: 70%
浏览 12
已结题

在app中调用 CROP intent裁剪照片无效?

Hi, 大家周末愉快!

羊了仍在苦苦debug的码农,请教安卓DX一个问题,在app中调用 CROP intent裁剪照片,调用无效!LogCat中也没有什么线索。而拍照生成照片没问题。

主要代码如下:

Intent intent = new Intent("com.android.camera.action.CROP");
intent.setType("image/*");
intent.setData(mImageCaptureUri);

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
}

    intent.putExtra("outputX", 480);
    intent.putExtra("outputY", 480);
    intent.putExtra("aspectX", 1);
    intent.putExtra("aspectY", 1);

    intent.putExtra("scale", true);
    intent.putExtra("scaleUpIfNeeded", true);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCropUri);

              intent.putExtra("crop", "true");
              intent.putExtra("return-data", false);
              intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
              intent.putExtra("noFaceDetection", true);

startActivityForResult(intent, CROP_FROM_CAMERA);

其中:

  1. 是在安卓虚拟机上测试,确定有裁剪功能。因为照相后可以简单编辑。API Level 是31. 难道31上不能intent调用CROP了吗?
  2. 原始照片是从相册 Downloads 下,选取的一个JPG文件。
    mImageCaptureUri = content://com.google.android.apps.photos.contentprovider/-1/1/content%3A%2F%2Fmedia%2Fexternal%2Fimages%2Fmedia%2F71/ORIGINAL/NONE/image%2Fpng/1987893059
  3. 目的照片app代码已经在调用裁剪intent之前生成好了,大小为0字节,等待填充。
    mImageCropUri = content://com.myapp.fileprovider/my_pic/Pictures/tmp_kuilimar_16712596169354514375851720661420.jpg

谢谢大家!

  • 写回答

1条回答 默认 最新

  • davexa 2022-12-17 19:10
    关注

    我追加了代码授权以及打印异常信息,如下。然而没有任何效果哦。

                 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                    grantUriPermission(getPackageName(),mImageCaptureUri,Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    grantUriPermission(getPackageName(),mImageCropUri,Intent.FLAG_GRANT_READ_URI_PERMISSION);
                    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                }
    
                try {
                    startActivityForResult(intent, CROP_FROM_CAMERA);
                }
                catch (Exception e) {
                    e.printStackTrace();
                }
    
    
    评论

报告相同问题?

问题事件

  • 系统已结题 12月25日
  • 创建了问题 12月17日

悬赏问题

  • ¥15 基于单片机的靶位控制系统
  • ¥15 AT89C51控制8位八段数码管显示时钟。
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错