本文教大家通过三步集成流程,在环信 Android UIKit 基础上 实现仿微信风格的多图选择与批量发送功能。该功能支持用户在聊天界面点击扩展菜单后,一次性从相册选择最多9张图片,并批量发送到聊天会话中。
66d24493-818c-468f-a401-a577c36c5e71.png (201.2 KB, 下载次数: 105) 下载附件 保存到相册 4 个月前 上传
66d24493-818c-468f-a401-a577c36c5e71.png (201.2 KB, 下载次数: 105)
下载附件 保存到相册
4 个月前 上传
在 app/build.gradle 中添加:
implementation 'io.github.lucksiege:pictureselector:v3.11.2' implementation 'com.github.bumptech.glide:glide:4.16.0' kapt 'com.github.bumptech.glide:compiler:4.16.0'
app/src/main/kotlin/com/hyphenate/chatdemo/utils/GlideEngine.kt
class GlideEngine : ImageEngine { override fun loadImage(context: Context, url: String, imageView: ImageView) { Glide.with(context).load(url).into(imageView) } override fun loadImage(context: Context?, imageView: ImageView?, url: String?, width: Int, height: Int) { if (context != null && imageView != null && url != null) { Glide.with(context).load(url).override(width, height).into(imageView) } } override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) { Glide.with(context).load(url).apply(RequestOptions().centerCrop()).into(imageView) } override fun loadGridImage(context: Context, url: String, imageView: ImageView) { Glide.with(context).load(url).apply(RequestOptions().centerCrop()).into(imageView) } override fun pauseRequests(context: Context) { Glide.with(context).pauseRequests() } override fun resumeRequests(context: Context) { Glide.with(context).resumeRequests() } companion object { private var instance: GlideEngine? = null fun createGlideEngine(): GlideEngine { if (instance == null) { instance = GlideEngine() } return instance!! } } }
app/src/main/kotlin/com/hyphenate/chatdemo/ui/chat/ChatFragment.kt
PictureSelector.create(this) .openGallery(1) // 1 代表图片类型 .setMaxSelectNum(9) .isPreviewImage(true) .setImageEngine(GlideEngine.createGlideEngine()) .forResult(object : OnResultCallbackListener<LocalMedia> { override fun onResult(result: ArrayList<LocalMedia>?) { result?.forEach { media -> val path = media.availablePath if (!path.isNullOrEmpty()) { val uri = Uri.parse(path) sendImage(uri) } } } override fun onCancel() {} })
3. 发送图片消息
sendImage(uri: Uri) 方法内部调用环信 SDK 的图片消息发送能力,通常直接调用父类或 SDK 提供的 sendImageMessage(uri)。
通过以上三步集成,大家可以在环信 Android UIKit 基础上实现完善的仿微信多图选择与发送功能。在实际项目中,还可根据具体需求调整选择数量限制、UI风格和发送策略等。
引用:imageEngine is null, Please implement ImageEngine
引用:NotImplementedError: An operation is not implemented: Not yet implemented
引用:Type mismatch: inferred type is String but Int was expected
来源:即时通讯网 - 即时通讯开发者社区!
轻量级开源移动端即时通讯框架。
快速入门 / 性能 / 指南 / 提问
轻量级Web端即时通讯框架。
详细介绍 / 精编源码 / 手册教程
移动端实时音视频框架。
详细介绍 / 性能测试 / 安装体验
基于MobileIMSDK的移动IM系统。
详细介绍 / 产品截图 / 安装体验
一套产品级Web端IM系统。
详细介绍 / 产品截图 / 演示视频
一套纯血鸿蒙NEXT产品级IM系统。
详细介绍 / 产品截图 / 安装
知名即时通讯相关技术服务商。
Copyright © 2014-2026 即时通讯网 - 即时通讯开发者社区 / 版本 V4.4
苏州网际时代信息科技有限公司 (苏ICP备16005070号-1)
Processed in 0.109375 second(s), 35 queries , Gzip On.