记:Android 26版本以上相机和裁剪的问题

高版本跳转相机:

val intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

        file = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), img_name)

        intent.putExtra(MediaStore.EXTRA_OUTPUT, FileProvider.getUriForFile(activity,                 "packagename.FileProvider", file!!))

        intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)

        intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)

} else  {

        intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file))

}

高版本裁剪:

        val intent = Intent("com.android.camera.action.CROP")

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

            val outPutUri = uri.fromFile(file)

            intent.setDataAndType(uri, "image/*")

            intent.putExtra(MediaStore.EXTRA_OUTPUT, outPutUri)

            intent.putExtra("noFaceDetection", false)

            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)

            intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION)

} else  {

            val outPutUri = Uri.fromFile(file)

            if (Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {

            val url = GetImagePath().getPath(activity, uri)//这个方法是处理4.4以上图片返回的Uri对象不同的处理方法

        intent.setDataAndType(Uri.fromFile(File(url)), "image/*")

} else {

        intent.setDataAndType(uri, "image/*")

}

        intent.putExtra(MediaStore.EXTRA_OUTPUT, outPutUri)

}

        // 设置裁剪

        intent.putExtra("crop", "true")

        // aspectX aspectY 是宽高的比例

        intent.putExtra("aspectX", 1)

        intent.putExtra("aspectY", 1)

        // outputX outputY 是裁剪图片宽高

        intent.putExtra("outputX", 150)

        intent.putExtra("outputY", 150)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 亲爱的姐姐和妹妹, 看着你们姐妹俩一起练摊,觉得时间过得真快啊!姐姐上一次练摊还是大鲸鱼集市,那次是后备箱集市,妹...
    helenxxf阅读 133评论 0 0
  • 我们在开发中难免会导入第三方的库,在真机测试的时候,会报错clang: error: linker command...
    青梅煮码阅读 1,057评论 0 0
  • (稻盛哲学学习会)打卡第32天 姓名:周琪 部门:业务部 组别:待定 【知~学习】 诵读《活法》第三章:磨炼灵魂,...
    Lillian_Wellin阅读 279评论 0 0
  • 连续灵修113天【经文】亚撒呼求耶和华他的神说:“耶和华啊,惟有你能帮助软弱的,胜过强盛的。耶和华我们的神啊,求你...
    喜乐付阅读 5,633评论 0 0