首页
学习
活动
专区
工具
TVP
发布

Android弹幕功能实现,模仿斗鱼直播的弹幕效果

弹幕则无疑是直播功能当中最为重要的一个功能之一,那么今天,我就带着大家一起来实现一个简单的Android弹幕效果。 分析 首先我们来看一下斗鱼上的弹幕效果,如下图所示: ?...弹幕的View必须要做成完全透明的,这样即使覆盖在游戏界面的上方也不会影响到游戏的正常观看,只有当有人发弹幕消息时,再将消息绘制到弹幕的View上面就可以了。原理示意图如下所示: ?...但是我们除了要能看到弹幕之外也要能发弹幕才行,因此还要再在弹幕的View上面再覆盖一个操作界面的View,然后我们就可以在操作界面上发弹幕、送礼物等。原理示意图如下所示: ?...实现弹幕效果 接下来我们开始实现弹幕效果。弹幕其实也就是一个自定义的View,它的上面可以显示类似于跑马灯的文字效果。...注意addDanmaku()方法中有一个withBorder参数,这个参数用于指定弹幕消息是否带有边框,这样才好将自己发送的弹幕和别人发送的弹幕进行区分。

4.1K90

Android自制精彩弹幕效果

好久没有写过文章,最近发现直播特别的火,很多app都集成了直播的功能,发现有些直播是带有弹幕的,效果还不错,今天心血来潮,特地写了篇制作弹幕的文章. 今天要实现的效果如下: 1.弹幕垂直方向固定 ?...2.弹幕垂直方向随机 ?...上面效果图中白色的背景就是弹幕本身,是一个自定义的FrameLayout,我这里是为了更好的展示弹幕的位置才设置成了白色,当然如果是叠加在VideoView上的话,就需要设置成透明色了....制作弹幕需要考虑以下几点问题: 1.弹幕的大小可以随意调整 2.弹幕内移动的item(或者称字幕)出现的位置,水平方向是从屏幕右边移动到屏幕左边,垂直方向是不能超出弹幕本身的高度的. 3.字幕移除屏幕后...新的弹幕啊!!!新的弹幕啊!!!新的弹幕啊!!!")

87451
您找到你想要的搜索结果了吗?
是的
没有找到

Android实现视频弹幕功能

本文实例为大家分享了Android视频弹幕的具体代码,供大家参考,具体内容如下 效果图: ? ?...上图:代码随机生成的弹幕弹幕输入栏 下图:绿色框的弹幕为用户手动添加发送的弹幕 1.准备工作 准备一个视频文件,将该视频文件放到res/raw目录下。 ?...android:name="android.intent.category.LAUNCHER" / </intent-filter </activity 这里用到了哔哩哔哩开源的弹幕效果库DanmakuFlameMaster...注:DanmakuFlameMaster的版本最好使用在0.9以上,否则会存在一些弹幕bug 2.布局 使用一个相对布局,弹幕浮于视频之上,底部是弹幕文字输入栏,右下角为弹幕发送按钮: <?...:text="发送"/ </LinearLayout </RelativeLayout 3.视频弹幕的实现 <1 播放视频使用VideoView来进行播放; <2 关于弹幕库的使用,需要创建一个

1.3K31

Android简单实现弹幕效果

本文实例为大家分享了Android实现弹幕效果的具体代码,供大家参考,具体内容如下 首先分析一下,他是由三层布局来共同完成的,第一层视频布局,第二层字幕布局,第三层输入框布局,要想让这三个布局在同一页面上...<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com...</RelativeLayout 创建一个弹幕的解析器 public class MainActivity extends AppCompatActivity { private boolean...showDanmaku; private DanmakuView danmakuView; private DanmakuContext danmakuContext; //创建一个弹幕的解析器 private...{ } @Override public void drawingFinished() { } }); danmakuContext=danmakuContext.create(); //第一个参数是弹幕的解析器

1.6K30

Android:简单的弹幕效果达到

功能: (1)弹幕生成后自己主动从右側往左側滚动(TranslateAnimation)。弹幕消失后立马被移除。 (2)弹幕位置随机出现。而且不反复(防止文字重叠)。...(4)自己定义先减速,后加速的Interpolator,弹幕加速进入、减速停留、然后加速出去。...{ private MyHandler handler; //弹幕内容 private TanmuBean tanmuBean; //放置弹幕内容的父组件 private...", "測试一下", "弹幕这东西真不好做啊", "总是出现各种问题~~", "也不知道都是为什么?麻烦!", "哪位大神能够帮帮我啊?"...", "測试一下", "弹幕这东西真不好做啊", "总是出现各种问题~~", "也不知道都是为什么?麻烦!", "哪位大神能够帮帮我啊?"

51110

Android EasyBarrage实现轻量级弹幕效果

本文介绍了Android EasyBarrage实现轻量级弹幕效果,分享给大家,具体如下: 概述 EasyBarrage是Android平台的一种轻量级弹幕效果目前支持以下设置: 自定义字体颜色,支持随机颜色...; 自定义字体大小,支持随机字体大小; 支持边框显示,用于区分自己的弹幕和其他弹幕; 自定义边框颜色; 弹幕数据是否允许重复; 自定义单屏显示的最大弹幕数量; 数据不重叠; 支持动态添加弹幕; 不依赖VideoView...1 build.gradle compile 'com.kd.easybarrage:library:0.0.1' 2 xml <com.kd.easybarrage.BarrageView android...:id="@+id/barrageView" android:layout_width="match_parent" android:layout_height="match_parent"...android:layout_above="@+id/send" app:allow_repeat="true" app:border_color="@color/colorAccent"

89831

Android自定义View实现弹幕效果

在很多视频直播中都有弹幕功能,而安卓上没有简单好用的弹幕控件,本文介绍一个自定义弹幕view的demo。 效果图: ?...思路: 1、自定义Textitem类表示弹幕的信息 2、自定义view继承view,使用ArrayList保存每条Textitem 3、随机生成坐标点绘制每条TextItem,不断变换Text的横坐标实现弹幕的滚动...首先创建弹幕类,弹幕包括坐标,颜色,滚动速度,以及文字内容: public class Textitem { private String content; private float fx;...VIew就是不断从ArrayList中获取弹幕进行绘制,由于在其他线程进行刷新,所以使用postInvalidate进行重绘。...由于只是实现demo,很多问题没有考虑,存在问题: 弹幕离开屏幕后没有进行清除,使得ArrayList不断扩大,可以进行一个判断,若Textitem的绘制区域不在屏幕内则删掉此item 弹幕若没有交互需求

85660

2333333-弹幕弹幕的正确打开方式!

,粗鲁但充满生命力的形式欢快的奔腾进了大众视野——“弹幕+影院”、“弹幕+音乐”、“弹幕+搜索”、“弹幕+教育”,甚至“弹幕+阅读”——在这一场场看似很美的亚文化和所谓的“弹幕社交”的胜利中,有多少人受到精神污染...就表现形式来说,弹幕包括普通表现形式(普通滚动字幕,顶端固定字幕和底端固定字幕)和神弹幕表现形式(利用普通模式制作的特殊弹幕效果,和高级弹幕制作的花样弹幕效果)。...一方面,如果你选择开启弹幕,过分的弹幕厚度自然会对用户的注意力造成干扰,乃至完全覆盖观赏内容,甚至弹幕评论之间互相拥挤造成了弹幕本身的阅读障碍,这也是为什么在土豆网刚刚引入弹幕时,一大堆人都在刷“**,...这里仅对弹幕进入公共场景下的表现和与阅读体验结合的可能性做简单探讨。 “弹幕+影院” 很容易想到,其实就是将弹幕从自家的电脑屏幕搬到了影院的大荧幕上。...但从去年试映的三部弹幕电影(《小时代3》、《秦时明月》和《绣春刀》)的反馈来看,似乎弹幕和影院的化学反应并不那么容易达成——首先,适合弹幕的影片至少需要具备满满的槽点和众多粉丝,否则失去了趣味性和热闹氛围的弹幕只会徒增违和感

1.8K80

前端弹幕实现

正文 功能 弹幕文字各种样式:字体大小、字体类型、字体颜色(字体透明度) 弹幕展示速度 弹幕行高度 弹幕事件:鼠标左右点击事件、鼠标滑入滑出事件 调用方式如下: const div = document.createElement...在开始正式代码开发之前需要弄清楚这种方法实现的逻辑: 首先我们需要创建一个容器来承载弹幕元素,将监听函数写到这个容器上面 初始化弹幕信息(弹幕内容、样式、速度,同时判断对象是否是dom节点)、初始弹幕容器能够显示多少行...初始项目 这一步要做的事情有: 创建弹幕容器 向弹幕容器添加监听器,我们将所有弹幕节点的监听事件都委托到弹幕容器节点上面,减少内存占用 弹幕容器宽高存入state import React, { Component...dom 当弹幕展示完成以后我们需要将对应的弹幕dom从页面中移除,之前弹幕动画借助的是transition,因此我们可以通过监听transitionend事件 handleTransitionEnd =...结语 以上就基本完成了一个简单的弹幕功能,这里还有很多拓展还没有做或者由于篇幅问题没有展示,例如: 弹幕很多的时候我们如何控制弹幕速度 弹幕停止运动 屏幕变化如何控制弹幕显示的位置

2.7K41

android MVP框架

在开发Android应用时,相信很多同学遇到和我一样的情况,虽然项目刚开始构架时自认为MVC层级分的特别明确,但最终往往是一个Activity有好几百行代码,而且逻辑和UI显示完全混杂在一起,导致后续项目的维护成本巨大...MVP模式将分为两篇博客进行总结: (一)Android开发MVP模式解析 (二)Android开发MVP模式实践 一、MVP简介 我理解的MVP是由MVC优化衍生出来的一种模式,MVP将MVC...Android开发MVP模式实践中的示例将APP分为以下四层。 ? Entities:APP中的业务类。 Use Cases:负责从将Entities中的数据进行处理和包装。...四、总结 MVP将会为你的代码带来如下好处: View和Model之间的耦合度降低,使其更关注自身业务逻辑; 便于单元测试; 代码复用率提高; 代码框架更适用于快速迭代开发; 参考资料: Android...Architecting Android...The Clean way?

77270

浅谈弹幕的设计

形式 单条弹幕的基本模式有三种: 滚动弹幕:自右向左滚动过屏幕的弹幕,以自上而下的优先度展示。 顶部弹幕:自上而下静止居中的弹幕、以自上而下的优先度展示。...底部弹幕:自下而上静止居中的弹幕、以自下而上的优先度展示。...(倾斜向上的文字移动,让人没办法好好看字) 从用户体验角度出发——弹幕出现之后 弹幕出现后,我们的视角就集中到视频主体上,当弹幕出现时,如果是滚动弹幕,那么一般都是从右往左出发,非常适合我们的从左往右的阅读习惯...舞台 舞台是整个弹幕的主控制,它维护着多个轨道、一个等待队列、一个弹幕池。...无法复制加载中的内容 通过HTML+CSS实现的弹幕,每一个弹幕会对应一个 DOM 元素,为了减少频繁的创建,会在屏幕的左侧把上一轮已经滚出舞台的弹幕存到池子中,当有新弹幕时会重新复用。

1.4K31
领券