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

Android自定义View实现弹幕效果

在很多视频直播中都有弹幕功能,而安卓上没有简单好用的弹幕控件,本文介绍一个自定义弹幕view的demo。 效果图: ?...思路: 1、自定义Textitem类表示弹幕的信息 2、自定义view继承view,使用ArrayList保存每条Textitem 3、随机生成坐标点绘制每条TextItem,不断变换Text的横坐标实现弹幕的滚动...首先创建弹幕类,弹幕包括坐标,颜色,滚动速度,以及文字内容: public class Textitem { private String content; private float fx;...public float getPerstep(){ return perstep; } public void setPerstep(){ fx -= perstep; } } 接下来自定义...,可以使用Surfaceview进行绘制,SurfaceView可以在子线程更新UI,多缓存机制也可以避免画面跳动 另外注意下自定义View的构造函数的调用时机: public View(Context

94260

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

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

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

    前端弹幕实现

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

    2.9K41

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

    弹幕则无疑是直播功能当中最为重要的一个功能之一,那么今天,我就带着大家一起来实现一个简单的Android端弹幕效果。 分析 首先我们来看一下斗鱼上的弹幕效果,如下图所示: ?...弹幕的View必须要做成完全透明的,这样即使覆盖在游戏界面的上方也不会影响到游戏的正常观看,只有当有人发弹幕消息时,再将消息绘制到弹幕的View上面就可以了。原理示意图如下所示: ?...但是我们除了要能看到弹幕之外也要能发弹幕才行,因此还要再在弹幕的View上面再覆盖一个操作界面的View,然后我们就可以在操作界面上发弹幕、送礼物等。原理示意图如下所示: ?...实现弹幕效果 接下来我们开始实现弹幕效果。弹幕其实也就是一个自定义的View,它的上面可以显示类似于跑马灯的文字效果。...观众们发表的评论都会在弹幕上显示出来,但又会很快地移出屏幕,既可以起到互动的作用,同时又不会影响视频的正常观看。 我们可以自己来编写这样的一个自定义View,当然也可以直接使用网上现成的开源项目。

    4.3K90

    浅谈弹幕的设计

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

    1.5K31

    《请回答1988》弹幕分析

    《请回答1988》弹幕分析 本文是从B站提取弹幕,并生成《请回答1988》用户点评的词云图,具体代码参见请回答1988弹幕词云 [请回答1988弹幕词云图] B站弹幕提取 首先,通过b站网址,查看到《请回答...1988》木鱼水心弹幕最多的一集,其URL如下: https://www.bilibili.com/video/BV1g7411d7v7?...弹幕数据解析 以下是采用python来实现弹幕解析,并存储到本地txt文件中: 首先,需要先安装相关依赖包,例如requests、chardet等,我当前是采用的pycharm,直接在 setting的...我当前添加的是清华的镜像https://pypi.tuna.tsinghua.edu.cn/simple 具体实现代码如下: # 实现B站弹幕信息的解析和保存 import requests import...save_danm(cid) 弹幕词云生成 特别提示:在安装wordcloud库之前,需要先安装VC_redist.x64.exe 另外,停用词目前是用的哈工大的版本,具体见后文。

    95300

    Android自制精彩弹幕效果

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

    93451

    HarmonyOS Next 视频弹幕功能

    视频弹幕功能介绍本示例介绍如何使用 @ohos.danmakuflamemaster 和 @ohos.gsyvideoplayer 开发支持视频弹幕的播放器。...可以自定义弹幕样式、占据屏幕宽度,发送弹幕,开关弹幕视图。...效果图预览使用说明点击播放按钮,进行视频播放,弹幕自动开启点击“弹幕关”按钮,关闭弹幕点击“发送弹幕”按钮,发送一条弹幕弹幕内容为“这是一条弹幕”+当前时间戳实现思路初始化播放器videoInit:...,并设定一系列弹幕的参数值,包括弹幕内容、样式等 * 添加到提前实例化的弹幕模型model对象上 */private addDanmaku(isLive: Boolean) { if (this.mContext...DanmukuParser(); let jsonSource = new JSONSource(sourceData); parser.load(jsonSource); return parser;}本地自定义弹幕数据文件

    9520

    Python爬取《赘婿》弹幕

    今天我们的实战内容就是把观众发送的弹幕抓取下来,并将我在爬取过程中遇到的内容分享给大家。 分析网页 一般来说,视屏的弹幕是不可能出现在网页源码中的,那么初步判断是通过异步加载弹幕数据。...爱奇艺的弹幕地址获取如下: https://cmts.iqiyi.com/bullet/参数1_300_参数2.z 参数1是:/54/00/7973227714515400 参数2是:数字1、2、3.....爱奇艺每5分钟就会加载一次弹幕,每一集下来大概是46分钟,因此弹幕的链接如下: https://cmts.iqiyi.com/bullet/54/00/7973227714515400_300_1.z...那现在我们又需要回到刚刚的起点了,需要构造弹幕URL,并向该URL发送请求,获取它的二进制数据,再进行解压缩并保存为XML文件,最后从该文件中提取弹幕数据。...所以对于我们来说,提取里面的弹幕对我们来说基本上,没有什么问题。

    54850
    领券