当前位置: 首页 > news >正文

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}

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

http://www.dtcms.com/a/438003.html

相关文章:

  • 安卓基础组件031-Retrofit 网络请求框架
  • Redis 黑马点评-商户查询缓存
  • Android geckoview 集成,JS交互,官方demo
  • 【APK安全】Android 权限校验核心风险与防御指南
  • 单调队列与单调栈
  • 设计与优化Java API:构建高效、可维护的接口
  • Locality Sensitive Hashing (LSH) 详解:高效检测语言语句重复的利器
  • 阿里云网站开发零起步如何做设计师
  • 后端开发基础概念MVC以及Entity,DAO,DO,DTO,VO等概念
  • 七大排序算法的基本原理
  • Gateway-过滤器
  • 科普:Python 中,字典的“动态创建键”特性
  • Java 21 或 JavaFX 打包 exe 之 GraalVM Native Image 方案
  • 1.2.3 MCP(Model Context Protocol)
  • dede网站栏目管理网络科技是做什么的
  • 《Gdb 调试实战指南:不同风格于VS下的一种调试模式》
  • lua虚拟机的垃圾回收机制
  • 网站建设需要的材料wordpress自带的404
  • MPAndroidChart 用法解析和性能优化 - Kotlin Java 双版本
  • Qt中使用日志---Log4Qt
  • linux centos 7 解决终端提示符出现-bash-4.2的问题
  • MCP模型上下文协议实战:个人应用项目如何集成MCP?
  • Vue--Vue基础(一)
  • 外贸网站推广如何做郑佩佩 最新消息
  • 用VScode和msys2配置C/C++和wxWidgets
  • 【升级安卓9教程】华为Q21_Q21A_Q21C_Q21AQ_Q21AE_hi3798mv200线刷烧录包带adb权限
  • vite vue 打包后运行,路由首页加载不出来
  • 《C++ STL:vector类(下)》:攻克 C++ Vector 的迭代器失效陷阱:从源码层面详解原理与解决方案
  • 微软Agent框架深度解析:重新定义AI应用开发的革命性架构
  • 微信看视频打赏网站建设项目立项流程图