Github鏈接劣挫,給個(gè)Star鼓勵(lì)我寫(xiě)更多好庫(kù)
簡(jiǎn)介:
仿快手直播間手繪禮物哼蛆,手繪+播放+底部禮物彈框,Demo非常完整纵散,非常貼合實(shí)際開(kāi)發(fā)場(chǎng)景 梳码。
功能(優(yōu)點(diǎn)):
- ?Demo包含
手繪View
+播放View
+底部禮物彈框View
+轉(zhuǎn)成json傳給服務(wù)器+模擬服務(wù)器推送來(lái)json解析隊(duì)列 - ?為了兼容底部禮物彈框是基于Dialog或者popupView做的隐圾,本Demo的
手繪View
是基于windowManager層 - ?
手繪View
可以單獨(dú)撤銷(xiāo)一筆 - ?
播放View
使用LinkedList做禮物隊(duì)列伍掀,可以隨意插入到列頭或者列尾 - ?底部禮物彈框兼容手繪禮物和普通禮物,選擇不同的禮物暇藏,手繪View層可以切換placeHolder
- ?每個(gè)模塊都相互解耦蜜笤,都可以自由替換,也都可以拉出來(lái)當(dāng)做獨(dú)立的模塊
- ?采用SpareArray做Bitmap緩存盐碱,占用內(nèi)存極低
- ?無(wú)內(nèi)存泄漏把兔。代碼清晰明確,注釋量比代碼都多
效果gif圖(Gif圖有點(diǎn)卡瓮顽,實(shí)際運(yùn)行一點(diǎn)都不卡):
導(dǎo)入
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.QDong415:QDrawGift:v1.1.1'
}
使用
//底部的禮物彈框
private BottomGiftSheetBuilder giftSheetBuilder;
//畫(huà)禮物的背景View(透明的县好,并不是灰底)
private DrawGiftView drawGiftView;
//播放禮物動(dòng)畫(huà)的層
private DrawGiftPlayView playView;
//初始化手繪禮物View
drawGiftView = new DrawGiftView(LiveActivity.this);
//設(shè)置當(dāng)前要畫(huà)的禮物
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);
//開(kāi)始播放禮物暖混,insertToFirst = 是否插入到隊(duì)列靠前位置
playView.addDrawGifts(allDrawGiftArray, insertToFirst);
Author:DQ
我的其他開(kāi)源庫(kù)缕贡,給個(gè)Star鼓勵(lì)我寫(xiě)更多好庫(kù):
Android 仿大眾點(diǎn)評(píng)、仿小紅書(shū) 下拉拖拽關(guān)閉Activity
Android 仿快手直播間手畫(huà)禮物拣播,手繪禮物
Android 直播間聊天消息列表RecyclerView晾咪。一秒內(nèi)收到幾百條消息依然不卡頓
Android 仿快手直播界面加載中,頂部的滾動(dòng)條狀LoadingView
Kotlin MVVM框架贮配,全世界最優(yōu)化的分頁(yè)加載接口谍倦、最接地氣的封裝