android中调用相册

首先引用图片选择库

java 复制代码
implementation 'io.github.lucksiege:pictureselector:v3.11.2'

调用相机

java 复制代码
PictureSelector.create((Activity) context)
                                    .openCamera(SelectMimeType.ofImage())
                                    .forResultActivity(MIntentAction.REQUEST_CODE_CAMERA);

调用系统相册

java 复制代码
PictureSelector.create((Activity) context)
                                    .openGallery(SelectMimeType.ofImage())
                                    .setImageEngine(GlideEngine.createGlideEngine())// 外部传入图片加载引擎,必传项
                                    .isMaxSelectEnabledMask(true)// 选择数到了最大阀值列表是否启用蒙层效果
                                    .setMaxSelectNum(maxPics)//最大选择数量
                                    .setSelectionMode(SelectModeConfig.MULTIPLE)
                                    .isPreviewImage(true)// 是否可预览图片
                                    .forResult(MIntentAction.REQUEST_CODE_IMG);

在Activity类中接收

java 复制代码
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        if (resultCode != Activity.RESULT_OK) {
            return
        }
        if (null == data) {
            return
        }
        if (requestCode == MIntentAction.REQUEST_CODE_IMG) {//图片

            val selectList = PictureSelector.obtainSelectorList(data)
            analyticalSelectResults(result = selectList)

            val list = ArrayList<String>()
            if (null != selectList) {
                for (item in selectList) {

                    if (item.path.contains("content://")) {

                        val cr = this.contentResolver
                        list.add(FileUtils.getFilePathFromContentUri(item.path.toUri(), cr))
                    } else {
                        list.add(item.path)
                        Log.i(">>图片", item.path)

                    }

                }
                //上传图片--这里自行需改--这里是上传到了oss上

                OssUpload.setOssMoreImg(this, "opinion", list) { photoUrl ->
                    runOnUiThread {
                        var path = photoUrl
                        val bugAttachment = GoodsImgBean(0, path, 0, false)
                        adapter!!.addData(adapter!!.data.size - 1, bugAttachment)
                        viewModel.nopath.add(path)
                    }


                }


            }

            return


        }

        if (requestCode == MIntentAction.REQUEST_CODE_CAMERA) {//拍照
            //拍照
            val selectList = PictureSelector.obtainSelectorList(data) ?: return
            analyticalSelectResults(result = selectList)
            val list = ArrayList<String>()
            if (selectList[0].path.contains("content://")) {

                val cr = this.contentResolver
                list.add(FileUtils.getFilePathFromContentUri(selectList[0].path.toUri(), cr))

            } else {
                list.add(selectList[0].path)
                Log.i(">>图片", selectList[0].path)

            }

          //上传图片--这里自行需改--这里是上传到了oss上
            OssUpload.setOssMoreImg(this, "opinion", list) { photoUrl ->
                runOnUiThread {
                    var path = photoUrl
                    val bugAttachment = GoodsImgBean(0, path, 0, false)
                    adapter!!.addData(adapter!!.data.size - 1, bugAttachment)
                    viewModel.nopath.add(path)
                }

            }

        }

        return


    }

点击选择相册的时候 可以写一个弹框(相机,相册)点击的时候用上面的方法即可

相关推荐
BoomHe19 小时前
Android AOSP13 原生 Launcher3 壁纸获取方式
android
Digitally20 小时前
如何将联系人从 Android 转移到 Android
android
李小枫21 小时前
webflux接收application/x-www-form-urlencoded参数
android·java·开发语言
爱丽_21 小时前
MySQL `EXPLAIN`:看懂执行计划、判断索引是否生效与排错套路
android·数据库·mysql
NPE~21 小时前
[App逆向]环境搭建下篇 — — 逆向源码+hook实战
android·javascript·python·教程·逆向·hook·逆向分析
yewq-cn1 天前
AOSP 下载
android
cch89181 天前
Laravel vs ThinkPHP:PHP框架终极对决
android·php·laravel
米码收割机1 天前
【Android】基于安卓app的汽车租赁管理系统(源码+部署方式+论文)[独一无二]
android·汽车
流星雨在线1 天前
安卓使用 Startup 管理三方 SDK 初始化
android·startup
jwn9991 天前
Laravel3.x:PHP框架的经典里程碑
android