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


    }

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

相关推荐
Storm-Shadow6 小时前
Android OpenGLES视频剪辑示例源码
android·opengles·视频滤镜
双桥wow6 小时前
android 堆栈打印
android
爱学习的大牛12311 小时前
使用C++开发Android .so库的优势与实践指南
android·.so·1024程序员节
帅锅锅00714 小时前
SeLinux Type(类型)深度解析
android·操作系统
2501_9159214314 小时前
iOS混淆与IPA加固全流程(iOS混淆 IPA加固 Ipa Guard实战)
android·ios·小程序·https·uni-app·iphone·webview
游戏开发爱好者814 小时前
iOS 26 App 开发阶段性能优化 从多工具协作到数据驱动的实战体系
android·ios·小程序·uni-app·iphone·webview·1024程序员节
2501_9151063215 小时前
深入剖析 iOS 26 系统流畅度,多工具协同监控与性能优化实践
android·ios·性能优化·小程序·uni-app·cocoa·iphone
小彤花园15 小时前
GooglePlay更改签名秘钥报错(2025最新版)
android·google
Answer_momo16 小时前
一文读懂 Kotlin 数据流 Flow 的使用
android