首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flutter 实现虎牙斗鱼 弹幕效果

老孟导读:用Flutter实现弹幕功能,轻松实现虎牙、斗鱼的弹幕效果。...先来一张效果图: 实现原理 弹幕实现原理非常简单,即将一条弹幕从左侧平移到右侧,当然我们要计算弹幕垂直方向上的偏移,不然所有的弹幕都会在一条直线上,相互覆盖。...,现创建一条最简单的文字弹幕: Text( text, style: TextStyle(color: Colors.white), ); 效果如下: 创建一条VIP用户的弹幕: Text(..., style: TextStyle(color: Colors.white, fontSize: 18), ), ], ), ), ); 效果如下...其实实现弹幕效果没有我开始想的那么简单,过程中也遇到了一些问题,不过好在最终都解决了, 献上Github地址: https://github.com/781238222/flutter-do/tree/

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

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

弹幕则无疑是直播功能当中最为重要的一个功能之一,那么今天,我就带着大家一起来实现一个简单的Android端弹幕效果。 分析 首先我们来看一下斗鱼上的弹幕效果,如下图所示: ?...实现视频播放 由于本篇文章的主题是实现弹幕效果,并不涉及直播的任何其他功能,因此这里我们就简单地使用VideoView播放一个本地视频来模拟最底层的游戏界面。...这样我们就把第一步的功能实现了。 实现弹幕效果 接下来我们开始实现弹幕效果弹幕其实也就是一个自定义的View,它的上面可以显示类似于跑马灯的文字效果。...那么为了能够简单快速地实现弹幕效果,这里我就准备直接使用由哔哩哔哩开源的弹幕效果库DanmakuFlameMaster了。...现在重新运行一下程序,效果如下图所示: ? 这样我们就把第二步的功能也实现了。 加入操作界面 那么下面我们开始进行第三步功能实现,加入发送弹幕消息的操作界面。

4.2K90

Android EasyBarrage实现轻量级弹幕效果

本文介绍了Android EasyBarrage实现轻量级弹幕效果,分享给大家,具体如下: 概述 EasyBarrage是Android平台的一种轻量级弹幕效果目前支持以下设置: 自定义字体颜色,支持随机颜色...; 自定义字体大小,支持随机字体大小; 支持边框显示,用于区分自己的弹幕和其他弹幕; 自定义边框颜色; 弹幕数据是否允许重复; 自定义单屏显示的最大弹幕数量; 数据不重叠; 支持动态添加弹幕; 不依赖VideoView...github:https://github.com/shiweibsw/EasyBarrage 显示效果 横屏 ? 竖屏 ?...line_height 行高 border_color 边框弹幕的边框颜色 random_color 是否启用随机颜色 allow_repeat 弹幕内容是否可重复 3 Java代码 添加弹幕数据...,true); 3.3只显示内容 Barrage b=new Barrage("弹幕数据"); 添加一条弹幕 barrageView.addBarrage(new Barrage("我是新弹幕", true

94331

Android自定义View实现弹幕效果

在很多视频直播中都有弹幕功能,而安卓上没有简单好用的弹幕控件,本文介绍一个自定义弹幕view的demo。 效果图: ?...思路: 1、自定义Textitem类表示弹幕的信息 2、自定义view继承view,使用ArrayList保存每条Textitem 3、随机生成坐标点绘制每条TextItem,不断变换Text的横坐标实现弹幕的滚动...,需要实现定时刷新界面,重新绘制text。...所以实现了Runable接口,在构造方法中开启线程,不断循环,每600毫秒刷新界面: public class barrageview extends View implements Runnable{...由于只是实现demo,很多问题没有考虑,存在问题: 弹幕离开屏幕后没有进行清除,使得ArrayList不断扩大,可以进行一个判断,若Textitem的绘制区域不在屏幕内则删掉此item 弹幕若没有交互需求

91860

Android自制精彩弹幕效果

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

91751

Android:简单的弹幕效果达到

大家好,又见面了,我是全栈君 首先,效果图。分类似至360检测到的骚扰电话页面: 布局非常easy,上面是一个RelativeLayout,以下一个Button....功能: (1)弹幕生成后自己主动从右側往左側滚动(TranslateAnimation)。弹幕消失后立马被移除。 (2)弹幕位置随机出现。而且不反复(防止文字重叠)。...(4)自己定义先减速,后加速的Interpolator,弹幕加速进入、减速停留、然后加速出去。...1.Activity代码: /** * 简易弹幕效果实现 * Created by admin on 15-6-4. */ public class MainActivity extends ActionBarActivity...{ private MyHandler handler; //弹幕内容 private TanmuBean tanmuBean; //放置弹幕内容的父组件 private

54710

轻松又酷炫地实现弹幕效果——手把手教学

^_^ 现在越来越多的视频网站或者客户端支持弹幕功能,弹幕功能似乎也成了很多人的爱好,发弹幕,看弹幕成了大家吐槽、搞笑、发表看法的一种方式。 而国内弹幕的鼻祖应该就算A站和B站了。...弹幕(barrage),中文流行词语,原意指用大量或少量火炮提供密集炮击。而弹幕,顾名思义是指子弹多而形成的幕布,大量吐槽评论从屏幕飘过时效果看上去像是飞行射击游戏里的弹幕。...最近一直在写视频播放器,那弹幕怎么能少得了呢!所以把自己开发弹幕功能的思路写出来与大家分享。 依旧还是先上效果图: ?...所以,我采用适配器模式,仿ListView的Adapter来实现弹幕功能。 想到这里,很多人就会觉得这不典型的横向瀑布流嘛,用RecyclerView或者flexbox很轻松就实现了。...但我想自己从设计模式、实现原理来考虑、设计,从而也可以更深刻地理解适配器模式和ListView的原理,如果您想使用RecyclerView来实现,可以自己试试。

1.2K20

前端弹幕实现

前端弹幕实现 前言 目前视频播放平台弹幕几乎都是使用js操作dom的方式实现,由于篇幅的原因这次只展示js操作dom的实现方案。 下文代码展示使用的是react 16.2版本库。...lineHeight={40} // 弹幕行高 speed={[1, 2]} // 控制弹幕速度 onMouseOver={} onMouseOut={} /> js+dom实现方案...在开始正式代码开发之前需要弄清楚这种方法实现的逻辑: 首先我们需要创建一个容器来承载弹幕元素,将监听函数写到这个容器上面 初始化弹幕信息(弹幕内容、样式、速度,同时判断对象是否是dom节点)、初始弹幕容器能够显示多少行...初始项目 这一步要做的事情有: 创建弹幕容器 向弹幕容器添加监听器,我们将所有弹幕节点的监听事件都委托到弹幕容器节点上面,减少内存占用 弹幕容器宽高存入state import React, { Component...e => { this.refs.container.removeChild(e.target); } 数据更新 前面实现只能展示第一次传入的数据,对于后面再传入的弹幕数据就不能展示出来,我们这里使用

2.8K41

轻松又酷炫地实现弹幕效果——手把手教学

弹幕,顾名思义是指子弹多而形成的幕布,大量吐槽评论从屏幕飘过时效果看上去像是飞行射击游戏里的弹幕。 最近一直在写视频播放器,那弹幕怎么能少得了呢!所以把自己开发弹幕功能的思路写出来与大家分享。...依旧还是先上效果图: ?...所以,我采用适配器模式,仿ListView的Adapter来实现弹幕功能。 想到这里,很多人就会觉得这不典型的横向瀑布流嘛,用RecyclerView或者flexbox很轻松就实现了。...但我想自己从设计模式、实现原理来考虑、设计,从而也可以更深刻地理解适配器模式和ListView的原理,如果您想使用RecyclerView来实现,可以自己试试。...这里注意: Adapter缓存过大要及时清理; 每隔16毫秒让itemView位置刷新一次,这样视觉效果好一些; 在setAdapter中开启线程 new Thread(new MyRunnable

1K20
领券