图片演示

视频demo演示

集成起来非常简单

使用方法

compile 'cn.qssq666:giftanim:0.4'

如果0.4用不了用0.3 还是用不了请联系我,我不打算用jcenter了,最近其他库都出现了毛病..

布局定位到与与一条线对齐并包裹内容,或者外面嵌套一个帧布局然后底部对齐也是可以的。

`

android:id="@+id/giftlayout"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_above="@+id/line">

`

您可以完全不用设置,也可以设置,

`

giftAnimLayout.setOnGiftBarClick(new GiftAnimLayout.OnGiftBarClick() {

@Override

public void onClick(UserInfoI userInfo) {

Toast.makeText(MainActivity.this, "你点击了" + userInfo.getName(), Toast.LENGTH_SHORT).show();

}

});

giftAnimLayout.setGiftAdapterAndCallBack(new GiftBarAdapter());//具体作用看GiftBarAdapter注释

giftAnimLayout.setMaxShowCount(3);

giftAnimLayout.setHidenAnim(R.anim.follow_anim_from_left_vertical_hidden);// giftAnimLayout.setHidenAnim(R.anim.follow_anim_from_left_to_right_hidden);

giftAnimLayout.setShowDuration(6000);

giftAnimLayout.setThanMaxWait(false);//

`

首先项目是2016年写的,后面都废弃了 最近又做直播了,但是我发现我这个东西还有很多bug,经过修修改改,终于达到了我想要的效果。 代码实现也比较简单。

另外我感觉开源是我继续敲代码的动力,希望各位多多点赞,让更多人知道 力图最简单的方式 最快的速度实现需求 简单易懂方便扩展和抽取 是我的目标 和理想。

支持gift图片地址

支持自己维护x1 x2总数

支持x1 x2条件调节

上面所有的方法都不是必须填写的 都默认已经调整好。

支持礼物动画 x1 x2 x3 缩放效果

支持自定义 显示动画 和移除动画 移除动画已经上了例子。

支持自己维护x1 x2 x3

支持最新礼物自动插底显示 2017-07-09 完工

支持礼物总数爆表压力测试,将自动排队

确保所有礼物执行完毕

支持交叉显示动画 已显示的又收到了和另外一个已显示交叉位置 2017-07-09 完工

支持view缓存 2017-07-09 完工

支持自定义布局扩展

支持自定义图片加载方式 2017-07-08完工

支持扩展 ,简单的布局动画用户轻松扩展

方便自定义 礼物的x1 x2 x3是由 userid和礼物地址控制的如果不需要连x的动画可以让每一个礼物返回的key不一样 继承礼物动动画类,复写这个方法,就行这个方法叫ggetKey(UserInfoI userInfo, GiftModelI giftModel)可以返回一个时间戳就行,

支持自定义交叉值控制 当礼物已存在但不在最靠屏幕中间的,如果 这个礼物超过了最靠屏幕中间已经积累的值的指定大小就发生一次交叉动画 ,setAcrossDValue 比如设置5 如果不管是多少度交叉就设置更大的数值或者设置为Integer的最大值

简单的接口实现 giftmodel userinfo,用户轻松解耦,

唯一标识 是由userInfo的getUserid+礼物地址组成

setGiftAdapterAndCallBack 可以实现高度定置化

点赞动画布局

`

cn.qssq666.giftanim.periscope.FavorLayout

android:id="@+id/favorlayout"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_marginLeft="@dimen/theme_margin"

android:layout_marginTop="@dimen/theme_margin" />

`

触发点赞代码逻辑

`

favorLayout.addFavor();

`

礼物动画定制化演示

public class GiftBarAdapter implements GiftAnimLayout.GiftCallBack {

private static final String TAG = "GiftBarAdapter";

@Override

public void onGiftAnimOver(GiftModelI giftModel) {

((GiftDemoModel) giftModel).setShowcount(0);//如果是0则会直接设置为1的

Log.w(TAG, "onGiftAnimOver:" + giftModel);

}

@Override

public void onFindExistGiftAnim(GiftModelI giftModel) {

// ((GiftModel) giftModel).setShowcount(1);

Log.w(TAG, "onFindExistGiftAnim:" + giftModel);

}

@Override

public void onAddNewGift(GiftModelI giftModel) {

Log.w(TAG, "onAddNewGift:" + giftModel);

}

@Override

public void onAddWaitUnique(GiftModelI giftModel) {

Log.w(TAG, "onAddWaitUnique:" + giftModel);

}

@Override

public int onRequestShowGiftCount(GiftModelI modelI, StrokeTextView tvValue) {

int showcount = ((GiftDemoModel) modelI).getShowcount();//如果一直返回0还是由内部支持

// showcount = showcount == 0 ? tvValue.getValue() + 1 : showcount;

Log.w(TAG, "onRequestShowGiftCount :showCount:" + showcount);

// showcount = showcount == 0 ? tvValue.getValue() + 1 : showcount;

return showcount;

}

@Override

public ViewGroup getGiftLayout(GiftAnimLayout giftAnimLayout) {

//返回null表示内部本来就有的那个

return (ViewGroup) LayoutInflater.from(giftAnimLayout.getContext()).inflate(R.layout.view_live_gift_bar_prescro, giftAnimLayout, false);

}

/**

* 返回false表明内部进行绑定图片 那么这里就没必要再进行处理了。但是这里要维护的话头像也给维护了哈!

*

* @param userInfo

* @param giftModel

* @param giftHolder

* @return

*/

@Override

public boolean onBindPic(UserInfoI userInfo, GiftModelI giftModel, GiftAnimLayout.GiftHolder giftHolder) {

ImageLoader.getInstance().displayImage(userInfo.getFace(), giftHolder.ivFace);

Uri uri = Uri.parse("" + giftModel.getGiftImage());

/*

com.facebook.drawee.view.SimpleDraweeView

draweeView = (SimpleDraweeView) giftHolder.ivGift;

draweeView.setAspectRatio(1);

draweeView.setImageURI(uri);

*/

SimpleDraweeView draweeView = (SimpleDraweeView) giftHolder.ivGift;

draweeView.setAspectRatio(1);

DraweeController draweeController =

Fresco.newDraweeControllerBuilder()

.setUri(uri)

.setAutoPlayAnimations(true) // 设置加载图片完成后是否直接进行播放

.build();

draweeView.setController(draweeController);

return true;

}

}

上面的注释很清楚了。默认的imageloader已经维护好加载了,如果要gift动画 那么就是上面的例子效果了。

实际上demo的代码已经设置好了adapterAndCallBack 您也可以完全不用设置,然后跑跑代码 也没毛病。 哈哈。

自定义布局 等 就是new一个 callback

giftAnimLayout.setGiftAdapterAndCallBack(new GiftBarAdapter());//具体作用看GiftBarAdapter注释

html5直播礼物动画,GitHub - General757/giftanim: 直播礼物动画 送赞送礼物动画 仿映客礼物动画侧栏弹出送花人和礼物以及x1 x2 x3效果,支持队列 排序...相关推荐

  1. Objective-C仿映客跑车动画

    做了一个仿映客跑车动画,效果就是边跑边放大,过程中车轮子也在转.先来看一下效果: 大体的思路就是把汽车和轮子图片放大一个view中,给这个view加上改变位置和大小的动画,同时,车轮子自己执行tran ...

  2. 做一款仿映客的直播App?看我就够了

    来源:JIAAIR 链接:http://www.jianshu.com/p/5b1341e97757 一.直播现状简介   1.技术实现层面: 技术相对都比较成熟,设备也都支持硬编码.IOS还提供现成 ...

  3. 做一款仿映客的直播App

    投稿文章,作者:JIAAIR(GitHub) 一.直播现状简介 1.技术实现层面 技术相对都比较成熟,设备也都支持硬编码.iOS还提供现成的Video ToolBox框架,可以对摄像头和流媒体数据结构 ...

  4. 直播APP的应用(使用七牛直播平台SDK和环信IM低仿映客)

    简介 这是一款低仿映客直播的Android直播聊天应用,本项目通过使用七牛的直播平台提供的sdk进行推流和拉流,使用环信IM来作为用户系统的管理直播聊天室中消息收发.发送礼物.弹幕.私信等功能.本项目 ...

  5. 如何开发出一款仿映客直播APP项目实践篇 -【服务器搭建+推流】

    如何开发出一款仿映客直播APP项目实践篇 -[原理篇] 如何开发出一款仿映客直播APP项目实践篇 -[采集篇 ] 如何开发出一款仿映客直播APP项目实践篇 -[服务器搭建+推流] 如何开发出一款仿映客 ...

  6. android动画送礼物,Android开发仿映客送礼物效果

    这里写链接内容仿映客送小礼物的特效,顺便复习一下属性动画,话不多说先看效果图. 需求分析 可以看到整个动画有几部分组成,那我们就把每个部分拆分出来各个击破. 1.要显示那些内容以及内容间的位置关系? ...

  7. 最新仿映客直播APP开发实战项目IOS开发实战8天(最全最新)

    最新仿映客直播APP开发实战项目IOS开发实战8天 第 1 章:直播准备 1: [录播] 课程大纲介绍 09:56 2: [录播] 了解直播技术和腾讯云直播 09:54 3: [录播] 基础封装 23 ...

  8. 【云豹直播系统】专业制作仿映客手机直播app、视频直播系统

    从去年开始,视频直播软件已在大众的娱乐生活中悄然走红,由PC端过渡到手机端的视频直播甚是火爆.在APP上,主播们可以通过手机摄像头,即时与粉丝聊天互动,让网友见识到移动直播的魅力.火爆远不止如此,国内 ...

  9. 映客如此之火,殊不知已经有仿映客手机直播全新上市了!

    现在一谈手机直播,总会听到提起映客,映客直播大红,成功的踏上入了各大媒体的直播界新闻头条,十足吸引了大量观众.可能连映客自己也不会想到会这么火,对我们而言,明星的魅力是尤为大的,他就犹如天上的星星看到 ...

  10. 仿闲鱼 底部菜单html,GitHub - 494293346/rotateMenu: 仿闲鱼首页,“底部加号弹出菜单选项” 界面,动画效果可能跟闲鱼有点不一样...

    rotateMenu 仿闲鱼首页,"底部加号弹出菜单选项" 界面,动画效果可能跟闲鱼有点不一样 ##简介 仿闲鱼首页,"底部加号弹出菜单选项" 界面,动画效果可 ...

最新文章

  1. SVM(支持向量机)之Hinge Loss解释
  2. [转载]jquery 消息插件--仿QQ消息弹出提醒
  3. PHP参数会被用作对象名
  4. FTP中传输模式:BIN与ASC的差别
  5. SQLServer 2014 本地机房HA+灾备机房DR解决方案
  6. 北师大计算机组成原理答案,计算机组成原理(白中英)本科生试题库整理附答案[共21页].doc...
  7. 架构的坑系列:重构过程中的过度设计
  8. python能做什么程序-学完python可以做什么?
  9. 贪吃蛇c语言作业ppt,c语言贪吃蛇
  10. 随机信号分析学习笔记(6)
  11. Svn内外网切换技巧
  12. android 微信文件存储,安卓微信文件存储位置
  13. WSL2 Docker Distro迁移
  14. 化繁为简、敏捷迭代,轻量化小程序时代已然到来
  15. 滴滴章文嵩:我们比AlphaGo面临的问题要复杂很多很多倍
  16. netty玩转irving聊天室(android整合netty客户端+springboot整合netty服务端),附源码
  17. 第十七天(续第十六天BPDU相关知识以及STP的配置)
  18. js 三个点(...),扩展运算符说明
  19. struts2中No result defined for action xxx.xxx.xxx and result xxx错误的几种解决方法
  20. 云计算,经济危机下爆发

热门文章

  1. stm32码盘传感器_STM32电机测速(正交或者霍尔编码器)
  2. python制作个人名片_python做名片系统
  3. Linux运维04:vmstat命令详解
  4. QThread安全退出
  5. Unity游戏资源逆向工具
  6. 关于对接网易云即时通信IM的心得
  7. Node.js mzitu图片批量下载爬虫1.00
  8. 使用深度学习进行表检测、信息提取和构建
  9. Odoo12功能模块文档整理
  10. 【AI识人】OpenPose:实时多人2D姿态估计 | 附视频测试及源码链接