美文网首页android
Android直播间聊天消息列表,直播间RecyclerView

Android直播间聊天消息列表,直播间RecyclerView

作者: 大鼓书 | 来源:发表于2022-05-27 22:09 被阅读0次

Github链接,给个Star鼓励我写更多好库

直播间聊天消息列表,直播间RecyclerView。采用3层缓存机制,一秒内收到几百条消息依然不卡顿。

功能(优点):

  • ✅采用3层缓存机制 + 异步解析ImageSpan。一秒内收到几百条消息依然不卡顿
  • ✅可配置RecyclerView最短刷新时间间隔 。如0.5秒只触发一次notify
  • ✅可配置在短时间内如果收到太多消息可选择丢弃消息 。如0.5秒收到超过10条就丢弃了
  • ✅根据缓冲区消息数量选择不同的ScrollToBottom速度 。用户体验细节
  • ✅Demo中提供"底部还有XX条未读消息"的处理方式 。并解耦出来,用在你的聊天界面也可以
  • ✅Demo中提供弹幕中仿抖音的"粉丝团"标签处理方式 。我自己写的控件
  • ✅内存占用控制的很好,1秒收到几百条消息 帧数也控制在55以上
  • ✅完美解耦,无内存泄漏,接入很简单

具体技术说明:

  • 第一层缓存:消息的标签ImageSpan缓存,比如"榜1" "等级" "粉丝团等级"<bar />

  • 第二层缓存:收到消息时候,检查上次刷新时间。如果刚上次刚刷新不到0.n秒,那么就插入到缓冲区。0.n秒后将全部缓冲区显示出来再清空缓冲区<bar />

  • 第三层缓存:model中的SpannableString。让用户手指滚动列表更顺畅,无需再次解析SpannableString<bar />

  • 额外缓存:解析标签ImageSpan时候全程只采用一个TextView,避免每次都new,json解析也是如此

  • 异步解析:解析完整的(昵称前有3个标签)SpannableString在低性能手机上最慢需要20-40ms。会造成丢帧。本库采用HandlerThread解析<bar />

  • 提供策略模式解析标签ImageSpan,拓展性极强

效果gif图(Gif图有点卡,实际运行一点都不卡):


微信图片_20220530211658.jpg

导入

    allprojects {
        repositories {
            ...
            maven { url 'https://jitpack.io' }
        }
    }

    dependencies {
            implementation 'com.github.QDong415:QLiveMessageHelper:v1.0'
    }

使用


//给我们的库 liveMessageRecyclerHelper,绑定recyclerView
        liveMessageRecyclerHelper.setRecyclerView(recyclerView)
        liveMessageRecyclerHelper.setUnreadTipsView(unreadTipsTextView)
        liveMessageRecyclerHelper.messageRecyclerHelperListener = object: LiveMessageRecyclerHelper.LiveMessageRecyclerHelperListener<LiveMessageModel> {
            override fun unreadMessageCountUpdate(unreadCount: Int) {
                unreadTipsTextView.setText("还有"+unreadCount +"条未读")
            }

            override fun asyncParseSpannableString(model: LiveMessageModel) {
                //这一步是在子线程中
                model.spannableString = liveMessageTextViewHelper.displaySpannableString(model)
            }
        }

        //RecyclerView最短刷新时间间隔(0秒 - 2.0秒)
        liveMessageRecyclerHelper.diffRefreshDuration = (intent.getFloatExtra("minRefreshTime",0.6f) * 1000).toLong()

Author:DQ

我的其他开源库,给个Star鼓励我写更多好库:

Android 仿大众点评、仿小红书 下拉拖拽关闭Activity

Android 仿快手直播间手画礼物,手绘礼物

Android 直播间聊天消息列表RecyclerView。一秒内收到几百条消息依然不卡顿

Android 仿快手直播界面加载中,顶部的滚动条状LoadingView

Kotlin MVVM框架,全世界最优化的分页加载接口、最接地气的封装

Android 基于个推+华为push的一整套完善的android IM聊天系统

IOS1:1完美仿微信聊天表情键盘

相关文章

  • Android直播间聊天消息列表,直播间RecyclerView

    Github链接,给个Star鼓励我写更多好库[https://github.com/QDong415/QLive...

  • 粉丝要掉了

    这两天在抖音直播唱歌,直播间进的人很少,前天和一个老铁在直播间聊天,直播间只进了160多人,昨天在直播间和几个粉丝...

  • Android-直播间列表渐隐效果

    直播间的打赏榜需要加一个渐变效果,类似映客APP直播间的消息列表,一开始使用xml-shape的gradient标...

  • Android-直播间列表渐隐效果

    直播间的打赏榜需要加一个渐变效果,类似映客APP直播间的消息列表,一开始使用xml-shape的gradient标...

  • 直播聊天室大并发消息处理

    最近在做直播间的聊天室,踩了很多坑,我们采用的是融云的IM,实现聊天室的功能,所有的直播间功能都通过消息进行...

  • UGUI实现直播间聊天消息滚动功能

    如今直播APP火的简直不像样子了。在直播间里会有观众和主播交流的功能。主要方式是主播动口(说),观众动手(打字)。...

  • 直播间聊天滚屏动画

    进入直播间的新用户,会有一个历史聊天记录的滚屏效果。本文列举两种 方式一 一次滚动到所有内容底部 方式二 一条一条...

  • 直播间可以另外开设一个聊天区域

    弹幕直播的直播间可以另外开设一个聊天区域(1个或多个聊天室): 1、直播间的观众有时只是想和其他观众交流讨论,但是...

  • 直播间

    直播行业的遍地生根,是一场全民的狂欢。 每一个有梦想的人,不分年龄,不分阶层,前赴后继地投入到这场盛宴中,想要分得...

  • 直播间

    知道么 Linckia海星客有直播间啦 设备齐全,设满足各种种类的直播需求。 宽敞明亮,空间布置清新又不单调...

网友评论

    本文标题:Android直播间聊天消息列表,直播间RecyclerView

    本文链接:https://www.haomeiwen.com/subject/ldmvprtx.html