android中调用相册
首先引用图片选择库
implementation 'io.github.lucksiege:pictureselector:v3.11.2'
调用相机
PictureSelector.create((Activity) context).openCamera(SelectMimeType.ofImage()).forResultActivity(MIntentAction.REQUEST_CODE_CAMERA);
调用系统相册
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类中接收
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.contentResolverlist.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 = photoUrlval 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) ?: returnanalyticalSelectResults(result = selectList)val list = ArrayList<String>()if (selectList[0].path.contains("content://")) {val cr = this.contentResolverlist.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 = photoUrlval bugAttachment = GoodsImgBean(0, path, 0, false)adapter!!.addData(adapter!!.data.size - 1, bugAttachment)viewModel.nopath.add(path)}}}return}
点击选择相册的时候 可以写一个弹框(相机,相册)点击的时候用上面的方法即可