获取手机相册图片显示并获取路径

 

获取手机相册图片显示并获取路径_第1张图片

先上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 跳出弹窗

       获取手机相册图片显示并获取路径_第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

欢迎您的到来!

 

你可能感兴趣的:(日记)