跳转相册/拍照图片并返回(适配8.0)

先上demo:https://gitee.com/longlyblack/PhotoDemo

使用环境:

               常用的使用弹窗选择图片或者照相功能

               适配至8.0

使用方法:

1 动圈申请权限

   使用Google的easyPermission权限

   申请方法是initPermission()

  //google权限管理库
    implementation 'pub.devrel:easypermissions:0.3.0'
 private void initPermission() {
        if (PermissionUtil.loginPermission(this, LOGINPRESSION)) {
            if (!PermissionUtil.isOPen(MainActivity.this)) {
                Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                startActivityForResult(intent, REQEEST_CDOE_GPS);
            }
        }
    }

2 跳出弹窗

       

3 获取图片返回值

    

   @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (resultCode == RESULT_OK) {
            if (requestCode == 0) {
                capath = uri + "";
                //这里判断图片返回值,将Android不识别的图片地址更改为可识别的
                if ((capath + "").contains("content")) {
                    capath = ImageUtils.getRealPathFromURI(this, uri);
                } else if (capath.contains("file:///")) {
                    capath = capath.substring(7, capath.length());
                } else {
                    capath = data.getData().toString();
                }
                GlideUtil.setCircleMethod(MainActivity.this, capath, ivModuleHead);
                lubanMethod(capath);
            } else if (requestCode == 3) {
                if (data == null) {
                    return;
                }
                capath = ImageUtils.getInstance().getFilePathMethod(this, data.getData());
                GlideUtil.setCircleMethod(MainActivity.this, capath, ivModuleHead);
                lubanMethod(capath);
            }
        }
    }

4 修改返回值

   转换工具类:ImageUtil

capath = ImageUtils.getRealPathFromURI(this, uri);

5 显示图片

   使用Glide加载工具 

   加载图片工具类:GlideUitl

 GlideUtil.setCircleMethod(MainActivity.this, capath, ivModuleHead);

6 图片压缩

   使用Luban压缩工具

 public void lubanMethod(final String str) {
        Luban.with(this).
                load(new File(str)).
                setCompressListener(new OnCompressListener() {
                    @Override
                    public void onStart() {

                    }

                    @Override
                    public void onSuccess(File file) {
                        files.add(file);
                        //TODO 这里处理列表里的图片文件
                    }

                    @Override
                    public void onError(Throwable e) {

                    }
                }).
                launch();
    }

至此,结束!

demo地址:https://gitee.com/longlyblack/PhotoDemo

技术聊天群:88627109

欢迎您的到来!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值