美文网首页Android
Android 仿快手直播间手画礼物,手绘礼物

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

作者: 大鼓书 | 来源:发表于2022-02-19 21:39 被阅读0次

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

简介:

仿快手直播间手绘礼物,手绘+播放+底部礼物弹框,Demo非常完整,非常贴合实际开发场景 。

功能(优点):

  • ✅Demo包含手绘View+播放View+底部礼物弹框View+转成json传给服务器+模拟服务器推送来json解析队列
  • ✅为了兼容底部礼物弹框是基于Dialog或者popupView做的,本Demo的手绘View是基于windowManager层
  • 手绘View可以单独撤销一笔
  • 播放View使用LinkedList做礼物队列,可以随意插入到列头或者列尾
  • ✅底部礼物弹框兼容手绘礼物和普通礼物,选择不同的礼物,手绘View层可以切换placeHolder
  • ✅每个模块都相互解耦,都可以自由替换,也都可以拉出来当做独立的模块
  • ✅采用SpareArray做Bitmap缓存,占用内存极低
  • ✅无内存泄漏。代码清晰明确,注释量比代码都多

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

导入

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

    dependencies {
            implementation 'com.github.QDong415:QDrawGift:v1.1.1'
    }

使用

    //底部的礼物弹框
    private BottomGiftSheetBuilder giftSheetBuilder;

    //画礼物的背景View(透明的,并不是灰底)
    private DrawGiftView drawGiftView;

    //播放礼物动画的层
    private DrawGiftPlayView playView;
    //初始化手绘礼物View
    drawGiftView = new DrawGiftView(LiveActivity.this);
    //设置当前要画的礼物
    drawGiftView.setCurrentGift(giftid ,giftBitmap , giftPrice);
    //正式显示手绘礼物View,添加它到windowManager层
    drawGiftView.showInActivityWindow(LiveActivity.this, giftSheetBuilder.mDialog.getContentView().getHeight());
    //初始化播放View
    playView = new DrawGiftPlayView(this);

    //添加播放View到decorView
    FrameLayout contentParent = (FrameLayout) getWindow().getDecorView().findViewById(android.R.id.content);
    contentParent.addView(playView);

    //开始播放礼物,insertToFirst = 是否插入到队列靠前位置
    playView.addDrawGifts(allDrawGiftArray, insertToFirst);

Author:DQ

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

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

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

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

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

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

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

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

相关文章

网友评论

    本文标题:Android 仿快手直播间手画礼物,手绘礼物

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