• Android 部分机型裁剪正常完成 但是 resultCode 一直返回0 data一直返回null


    这里裁剪完成,在图库中能看到正常看到裁剪后的图片

    但是resultCode 一直返回0 data一直返回null

    resultCode: -1 表示成     0 表示取消了操作

    这种情况下 需要检查一下发起该裁剪任务activity或者所属的activity  (fragment 运行必须依赖activity)

    注意注意注意   launchMode  一定不要设置为 singleInstance
    launchMode直接修改为默认 裁剪回调就正常了



    其他需要注意的地方 选择图库 进行裁剪时需要注意 图库的图片地址为公共地址
    裁剪任务不要临时授权 如果授权的话 部分手机会出错
    我这里测试了 miui临时授权写权限,会导致出错

    使用拍照 进行裁剪时 返回的地址为私有地址
    则需要临时授权,否则无法裁剪
    临时授权代码如下
    intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION)


    裁剪目录输出目录的设置

    使用Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES) 路径
    出现很多问题,仅在模拟器测试成功 直接pass掉了

    我这里使用的如下方法返回的uri 传一个文件名就可以 比如  name = "123.jpg"
    private fun getCropUri(name: String): Uri? {
        val values = ContentValues()
        values.put(MediaStore.Images.Media.DISPLAY_NAME, name)
        values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg")
        values.put(MediaStore.Images.Media.DATE_MODIFIED, System.currentTimeMillis() / 1000)
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
            values.put(MediaStore.Images.Media.RELATIVE_PATH, Environment.DIRECTORY_DCIM)
        }
        return requireContext().contentResolver.insert(
            MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
            values
        )
    }



    val cropUri =
    getCropUri("crop_face_${System.currentTimeMillis()}.jpg")
    intent.putExtra(MediaStore.EXTRA_OUTPUT,cropUri)
    
    

    图片裁剪异常问题

  • 相关阅读:
    P1363-幻象迷宫
    P1582-倒水
    P2123-皇后游戏
    P1233-木棍加工
    P1052-过河
    P1541-乌龟棋
    P1736-创意吃鱼法
    P1417-烹调方案
    LeetCode--043--字符串相乘(java)
    LeetCode--041--缺失的第一个整数(java)
  • 原文地址:https://www.cnblogs.com/rchao/p/15801174.html
Copyright © 2020-2023  润新知