zoukankan      html  css  js  c++  java
  • 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)
    
    

    图片裁剪异常问题

  • 相关阅读:
    贴一段微博上的小知识
    关于编译Qt以及驱动的一点总结吧
    一些服务器客户端的c例子
    android中DatePicker和TimePicker的使用
    Python标准库string模块《未完待续》
    Qt: SQL Programming
    和一个坑爹的项目组的经历
    linux一些杂项整理
    Qt中的QTableWidget
    Linux c学习进程基础学习
  • 原文地址:https://www.cnblogs.com/rchao/p/15801174.html
Copyright © 2011-2022 走看看