1、剪裁代码

 /*** 图片裁剪,裁剪后存放在沙盒目录下(沙盒目录/picture/子文件夹)** @param activity activity* @param uri      图片uri* @return 裁剪后的图片uri*/public static void openCrop(Activity activity, Uri uri) {if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {//未挂在存储设备或者没有读写权限return;}imgName = System.currentTimeMillis() + ".jpg";Intent intent = new Intent("com.android.camera.action.CROP");intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);intent.setDataAndType(uri, "image/*");// 设置裁剪intent.putExtra("crop", "true");// aspectX aspectY 是宽高的比例intent.putExtra("aspectX", 1);intent.putExtra("aspectY", 1);//        intent.putExtra(MediaStore.EXTRA_OUTPUT, resultUri);// 图片格式intent.putExtra("outputFormat", "png");intent.putExtra("noFaceDetection", true);// 取消人脸识别intent.putExtra("return-data", true);// true:不返回uri,false:返回uriif (Build.VERSION.SDK_INT >= 30) {//android 11以上,将文件创建在公有目录String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).getPath();//storage/emulated/0/PicturesFile mOnputFile = new File(path, imgName);intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.parse("file://" + mOnputFile.getAbsolutePath()));}activity.startActivityForResult(intent, REQUEST_CODE_CAPTURE_CROP);}

2、上传代码

  /*** @param bmpPath*/public static void uploadImg(Activity activity, String bmpPath, String name) {Log.d(TAG, "uploadImg utils: " + bmpPath + "," + name);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {file = new File(Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES) + File.separator + name);Log.d(TAG, "uploadImg file: " + file.getAbsolutePath());FileUtils.uploadHeadImage(activity, file, Constant.HEAD_URL);} }

3、最为重要的一点  权限的获取

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            // 适配android11读写权限
            if (Environment.isExternalStorageManager()) {
               //已获取android读写权限
            } else {
                Intent intent = new Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION);
                intent.setData(Uri.parse("package:" + getPackageName()));
                startActivityForResult(intent, REQUEST_PERMISSION_CODE);
            }
            return;
        }

具体上传逻辑根据自己需要编写。

其中file = new File(Environment.getExternalStoragePublicDirectory(DIRECTORY_PICTURES) + File.separator + name);很重要

android 11如何剪裁上传图片相关推荐

  1. Android 11 上传图片适配 和 第三方登录

    一  上传图片 本次适配,不添加android:requestLegacyExternalStorage="true" ,过程都用原生系统代码 1.首先选择图片 Intent in ...

  2. Android中使用OKHttp上传图片,从相机和相册中获取图片并剪切

    Android中使用OKHttp上传图片,从相机和相册中获取图片并剪切 效果: 注意: 1:网络权限 <uses-permission android:name="android.pe ...

  3. 谷歌官方版android,谷歌Android 11正式官方版

    谷歌Android 11正式官方版终于和广大用户朋友们见面了,今天,谷歌正式发布了最新版本的移动操作系统Android 11,此次更新为大家新增了很多的功能,分别分为三个主题,人. 控件和隐私.And ...

  4. android上传本地图片到服务器上,Android使用post方式上传图片到服务器的方法

    本文实例讲述了Android使用post方式上传图片到服务器的方法.分享给大家供大家参考,具体如下: /** * 上传文件到服务器类 * * @author tom */ public class U ...

  5. 未找到beta版怎么解决_刚刚,谷歌正式发布Android 11 Beta版,带来多项重磅更新...

    作者 | 安卓开发者博客 译者 | 核子可乐 策划 | 小智 转发链接:https://mp.weixin.qq.com/s/gp2XZGe69KDMAtsOeu56YA 前言 今日,谷歌安卓开发者博 ...

  6. android11测试版下载,Find X2系列 Android 11 Beta1 测试版发布,你要尝试一下吗?

    原标题:Find X2系列 Android 11 Beta1 测试版发布,你要尝试一下吗? 今年的特殊情况导致安卓11发布日期的一波三折,然而最后谷歌还是在6月11日发布了安卓Beta1版本.有趣的是 ...

  7. 安卓用户又少了一项自由,Android 11不再支持更改默认相机程序

    萧萧 发自 凹非寺 量子位 报道 | 公众号 QbitAI 在微博.微信上想要拍照上传时,想直接用FaceU或美图秀秀作为默认拍照程序,给自拍加个滤镜? 在即将推出的Android 11里,这些第三方 ...

  8. Android11模拟定位开发,Android 11 中的位置信息更新

    为了进一步保护用户隐私,Android 11 增加了单次位置信息访问权限,并更改了用户授予在后台访问位置信息权限的方式.这些更新会影响到 Android 11 及更高版本上运行的所有应用. 单次访问权 ...

  9. android 美颜,「照骗」要消失了?Android 11 或禁用自动美颜

    从照片到照骗,就是近年来手机人像摄影的完美总结.而这一变化的背后,就是越来越强大的美颜功能. 现在的手机--尤其是国产手机,打开前置相机就仿佛走进了整容院. 五官脸型发际线,肤色肤质黑眼圈,想到想不到 ...

  10. birt预览能有内容发布后没内容_谷歌突然推出Android 11开发者预览版 新版带来部分新功能和改进...

    谷歌刚刚在安卓开发者网站放出 Android 11 版的开发者预览版,该版本主要面向开发者提供用来测试新版功能. 在新版本里目前谷歌已经发布部分新功能和改进,随着开发者版本不断更迭后续更多新功能和改进 ...

最新文章

  1. Windows10远程桌面Ubuntu——把服务器当超高配置的个人电脑使用
  2. ie8恶心的bug--4个小时的教训
  3. 011 smali语法详解
  4. local map at cambridge
  5. 团队开发个人总结05
  6. php登录个性验证码,PHP七种不同的个性创意验证码例子
  7. 计算机专业英语作业1,计算机专业英语作业1
  8. 香港理工计算机qs排名,香港理工大学专业排名一览及最强专业推荐(QS世界大学排名)...
  9. 微信朋友圈内容能删除吗?
  10. L2TP详解(五)——Client Initiated隧道和会话建立过程
  11. Windows下,Unicode、UTF8,GBK(GB2312)互转
  12. python基础语法记录
  13. DCB差分码偏差概念及应用(附RTKLIB测试对比结果)
  14. 走向世界中的我国摄影测量与遥感 ——访中国测绘学会理事长、国家测绘局原副局长杨凯
  15. html背景颜色渐变色代码,css3背景渐变色代码
  16. NES模拟器源码阅读
  17. 群友(淡泊、明志)总结java面试题
  18. APP推广有哪些渠道
  19. 短域名Andy.ge 安迪哥的启用
  20. Selenium详解—— 自动化测试工具

热门文章

  1. 浏览器被hao123劫持
  2. 科目二考试全流程详解
  3. UEditor上传文件大小超限,上传失败问题解决
  4. with ties 的用法
  5. Exploiting Deep Generative Prior for Versatile Image Restoration and Manipulation
  6. xxljob默认登录_XXL-JOB快速入门
  7. python雨课堂答案_雨课堂和微助教的比较分析
  8. monkey命令——压力测试——转载参考09
  9. 网易邮箱无法正常登陆的解决技巧
  10. 【转载】Linux摄像头驱动1——vivid