Android EasyBarrage实现轻量级弹幕效果
作者:Knight_Davion 发布时间:2022-03-07 06:46:31
标签:Android,弹幕
本文介绍了Android EasyBarrage实现轻量级弹幕效果,分享给大家,具体如下:
概述
EasyBarrage是Android平台的一种轻量级弹幕效果目前支持以下设置:
自定义字体颜色,支持随机颜色;
自定义字体大小,支持随机字体大小;
支持边框显示,用于区分自己的弹幕和其他弹幕;
自定义边框颜色;
弹幕数据是否允许重复;
自定义单屏显示的最大弹幕数量;
数据不重叠;
支持动态添加弹幕;
不依赖VideoView,数据自动循环显示。
github:https://github.com/shiweibsw/EasyBarrage
显示效果
横屏
竖屏
使用
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"
app:line_height="20dp"
app:max_text_size="20"
app:min_text_size="14"
app:random_color="true"
app:size="200"/>
属性说明
属性 | 说明 |
---|---|
max_text_size | 最大字体 |
min_text_size | 最小字体 |
size | 单屏最大弹幕数量 |
line_height | 行高 |
border_color | 边框弹幕的边框颜色 |
random_color | 是否启用随机颜色 |
allow_repeat | 弹幕内容是否可重复 |
3 Java代码
添加弹幕数据
for (int i = 0; i < 200; i++) {
mBarrages.add(new Barrage("弹幕数据" + i));
}
注意Barrage对象有多种构造,可以设置字体颜色及是否显示边框,例如
3.1指定字体颜色
Barrage b=new Barrage("弹幕数据",R.color.colorAccent);
需要设置 app:random_color="false" 才有效
3.2显示边框
Barrage b=new Barrage("弹幕数据",true);
3.3指定颜色及显示边框
Barrage b=new Barrage("弹幕数据",R.color.colorAccent,true);
3.3只显示内容
Barrage b=new Barrage("弹幕数据");
添加一条弹幕
barrageView.addBarrage(new Barrage("我是新弹幕", true));
结束时调用destroy方法
barrageView.destroy();
来源:http://www.jianshu.com/p/60cb223b951b?utm_source=tuicool&utm_medium=referral


猜你喜欢
- SpringBoot默认使用HikariDataSource数据源定义数据源:存储了所有建立数据库连接的信息。通过提供正确的数据源名称,你可
- 最近在做代码优化时学习和研究了下JAVA多线程的使用,看了菜鸟们的见解后做了下总结。1、继承Thread类实现多线程继承Thread类的方法
- 先看下面的这组字符,如果输出来,它是无法靠右对齐: Source Codestring[] s1 = { "300",
- 之前讲到了自定义Adapter传递给ListView时,因为ListView的View回收,需要注意当ListView列表项中包含有带有状态
- Spring Cloud Gateway介绍前段时间刚刚发布了Spring Boot 2正式版,Spring Cloud Gateway基于
- 本文实例讲述了Java中对象的比较操作。分享给大家供大家参考,具体如下:一 点睛在Java中,有两种方式可用于对象间的比较:利用"
- (Memory Leak,内存泄漏)为什么会产生内存泄漏?当一个对象已经不需要再使用本该被回收时,另外一个正在使用的对象持有它的引用从而导致
- 这篇文章主要介绍了JPA save()方法将字段更新为null的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考
- Spring Cloud Feign简介 Spring Cloud Feign也是一个基础工具类,它整合了Spring Cloud Ribb
- 实体对象之间相互传值,如:VO对象的值赋给Entity对象,是代码中常用功能,如果通过get、set相互赋值,则很麻烦,借助工具类BeanU
- maven 文件打包,输入 :package -Dmaven.test.skip=true 进行打包, 一般生成的jar 文件 名称是项目名
- 上篇博文:Java-多线程的使用equals与==1. ==的使用1.1 概述⭕ 用于基本类型比较值时:只要两个变量的值相等,即为true。
- 前言前面几篇我们简单的复习了一下自定义 View 的测量与绘制,并且回顾了常见的一些事件的处理方式。那么如果我们想自定义 ViewGroup
- import java.util.Arrays;public class HeapSort { publ
- 在项目中,需要使用XStream将xml string转成相应的对象,却报出了java.lang.ClassCastException: c
- 一.应用场景平时在建对象表的时候都会有最后修改时间,最后修改人这两个字段,对于这些大部分表都有的字段,每次在新增和修改的时候都要考虑到这几个
- 概述ZXing 是一个开源 Java 类库用于解析多种格式的 1D/2D 条形码。目标是能够对QR编码、Data Matrix、UPC的1D
- 1.CAS1)CAS概念CAS时Compare And Swap缩写,即比较与交换是用于实现多线程同步的原子指令,它将内存位置的内容与给定值
- 前言算法对于程序员的重要性不言而喻,今天我和大家分享算法中的一个基础算法,快速排序。作为一名程序员,相信大家都不陌生,但是要大家徒手一次性写
- 今天记录一下验证码的实现,希望能够帮助到大家!首先我们看一下实现的效果:此验证码的实现没有用到太多的插件,话不多说直接上代码,大家拿过去就可