首页 > 编程知识 正文

直播间礼物特效gif,Eggster安卓彩蛋合集下载

时间:2023-05-04 09:42:42 阅读:37606 作者:2733

在一个安卓直播APP中,除了华丽的礼物视频外,还需要先弹出礼物,而且每个礼物都有不同的类型。 例如保时捷一台只送一台,而樱花这样的礼物可以连续送。 为了实现这个功能,首先看看下面的例子。

一、直播APP礼物弹匣的实现

在实现礼物弹匣的过程中,曾试图通过查看页面框架实现。 因为Fragment认为在更改布局时很有用,但在Popupwindow中容易报告找不到ViewPager的错误。 使用ActivityDialog,还会面临想要更新接口的情况。 在ViewPager中更新Fragment很困难。 这个想法是顺序思想。 以下内容排除了ViewPager的使用方法,而是使用自定义GridView作为每页的“礼物”界面来实现。 如果用其他方法实现的话就可以和我交流。

1、首先要有礼物的实体类。 假设定义为GiftEntity,其中包含属性id、name、type、price、pic等。

2、模拟礼物数据,假设有10种礼物,封装在List收藏中,代入变量giftList。

3、点击按钮弹出Popupwindow礼物弹匣。

4、目标是将每页的礼物定制为CustomGrideView,在内部进行点击活动等操作。 可以体现想法的代码如下。

显示礼物的Popupwindow弹匣代码:

私有语音窗口{

if(popwindow==null ) {

initgiftpopwindow (gift列表;

if (礼品清单!=null giftList.size ()!=0}{

for(intI=0; I(giftlist.size ) (- 1 )/8 ) 1; I ) {

initgrideview(I;

}

giftpageadaptergiftpageadapter=newgiftpageadapter (;

vgift container.set adapter (giftpageadapter );

cpigiftindicator.setviewpager (vpgiftcontainer;

}

}

popwindow.showatlocation (btngift,Gravity.BOTTOM,0,0 );

resetstate(mgiftid、mGiftName );

}

自定义每页礼物GridView的包代码:

私有字符串mgiftid、mGiftType、mGiftName;

私有istimageviewlist=new ArrayList (;

privatelistgridelist=new ArrayList (;

私有语音服务(inti ) {

customgrideviewmgifgrideview=newcustomgrideview (this,giftList,I );

gridelist.add(mgifgrideview;

mgifgrideview.setongiftselectcallback (newcustomgrideview.effectgiftcallback ({

@Override

publicvoideffectgiftid (stringgiftid,String giftType,String giftName,int type ) {

mGiftId=giftId;

mGiftType=giftType;

mGiftName=giftName;

for (customgrideviewmgride : gri delist ({

if(mgride!=null mGride.getType ()!=类型

mGride.clearAdapter (;

}

}

resetstate(giftid,giftName );

mc.onFinish (;

}

);

imageview list.add (mgifgrideview.getviews () );

}

从以上图2可以看出,采用回调技术和GridView的自适应方法,通过继承PagerAdapter实现翻页功能,imageViewList集合是代表所有页面的礼物集合,具体核心代码稍后将在

二、直播APP礼物连发视频实现

1、送礼物的动画功能主要是计数下行时间计时器的使用方法,点击dddqq,不断计时改变状态。

通过计数下行计时器实现送礼物的功能:

//*

*计时器控制持续发送礼物的状态

*/

隐私点击时间=2;

私密性booleaniscontintefinish=假;

classmycountdowntimerextendscountdowntimer {

publicmycountdowntimer (longmillisinfuture,long countDownInterval ) {

超级(millisinfuture,countDownInterval;

}

@Override

公共语音在线(

点击时间=2;

if(Iscontintefinish ) {

isContinteFinish=false;

if(btncontinueclick!=空btngiftsend!=空) {

bncontinueclick.set visibility (view.gone );

btngiftsend.set visibility (view.visible;

}

}

}

@Override

公共语音(长时间) {

isContinteFinish=true;

if(btncontinueclick!=空) {

btnContinueClick.setText ('连送' 'n' millisUntilFinished/100 );

}

}

}

2、点击发送礼物按钮时,根据礼物本身的类型属性,判断是否可以连接到dddqq,如果可以连接的话,重复次数,决定送多小的礼物。

相关源代码:

此源代码用于ViewPagerIndicator库,可以在github上找到。

如果导入ViewPagerIndicator后找不到类,则必须检查项目中使用的V4包版本与ViewPagerIndicator库的V4包版本是否匹配ViewPagerIndicator库还包含V4软件包,因此您可以从项目中删除V4软件包并将其更新为最新版本。

安卓直播APP礼品弹匣及礼品视频演示源地址:

三、安卓直播APP其他功能的实现请关注后续直播……

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。