bullet-screen-cj的DanmakuContext配置清单样式、防重叠、行数限制等8大设置详解【免费下载链接】bullet-screen-cj弹幕发送、解析与绘制库项目地址: https://gitcode.com/Cangjie-TPC/bullet-screen-cjbullet-screen-cj 是一款基于仓颉语言的弹幕发送、解析与绘制库核心配置全部集中在DanmakuContext上下文中。本文面向新手用 8 大类设置讲清弹幕库的配置方法显示开关、描边样式、透明度与字号、边距、同屏数量、行数限制、防重叠、滚动速度并附常用默认值速查表读完即可调出想要的弹幕效果。快速入门一条链式配置搞定基础设置所有配置都是链式调用每个set方法都返回DanmakuContext自身最后把配置对象交给 DanmakuViewModel.prepare() 即可生效var context DanmakuContext.create() context.setDanmakuStyle(DANMAKU_STYLE_STROKEN, 3.0) // 描边 .setScaleTextSize(1.2) // 字号放大 .setScrollSpeedFactor(1.2) // 滚动速度 .setDanmakuMargin(40) // 边距 model.prepare(parser, context) // 应用到弹幕视图官方示例的完整写法含行数与防重叠配置见 my_view.cj可直接照抄。 所有方法都在 model_danmaku_context.cj 中定义配合 doc/feature_api.md 查阅最完整。设置1弹幕类型显示开关5类弹幕独立控制支持 5 类弹幕的独立显隐默认全部显示源码第92-96行配置项作用说明setFTDanmakuVisibility顶部固定弹幕置顶不移动setFBDanmakuVisibility底部固定弹幕贴底不移动setL2RDanmakuVisibility从左到右滚动弹幕较少见setR2LDanmakuVisibility从右到左滚动弹幕最常见默认向右滚动消失setSpecialDanmakuVisibility特殊弹幕居中/定时出现隐藏某类弹幕的本质是把该类型加入过滤器setDanmakuVisible 实现不影响其他类型。设置2样式与外观——描边、阴影、投影与字体用setDanmakuStyle(style, values)一个方法切换 5 种文字效果常量定义见 model_i_displayer.cj样式常量values 传参效果DANMAKU_STYLE_NONE-纯文字无任何修饰DANMAKU_STYLE_SHADOW阴影半径柔和阴影DANMAKU_STYLE_STROKEN描边宽度经典白字黑边最常用DANMAKU_STYLE_PROJECTIONoffsetX、offsetY、alpha投影alpha 取值 0~255DANMAKU_STYLE_DEFAULT-自动其他外观配置setDanmakuBold(true)粗体显示对部分字体无效源码setTypeface(字体名)自定义字体参照 ohos.font源码setCacheStuffer(...)默认SimpleTextCacheStuffer只支持纯文字图文混排请改用SpannedCacheStuffer源码设置3透明度与字号缩放setDanmakuTransparency(p)取值 0~255值越大越透明默认 255不透明内部换算为 paint alpha源码setScaleTextSize(p)字号缩放系数默认 1.0。设为 1.2 即整体放大 20%同时会清空文字高度缓存并重新测量源码设置4边距控制setDanmakuMargin(m)四周边距单位 px默认 0setMarginTop(m)单独设置顶部边距让滚动弹幕整体下移官方示例设为 40避免弹幕贴边context.setDanmakuMargin(40) context.setMarginTop(60)设置5同屏弹幕数量限制密度控制setMaximumVisibleSizeInScreen(n)控制同屏最多显示几条弹幕源码取值行为-1默认按绘制效率自动调整低帧率自动减量0不限制注册的数量过滤器被注销n同屏最多 n 条超出部分被数量过滤器拦截⚠️ 注意单个弹幕对象上priority 0的弹幕属于高优先级不会被过滤器过滤见 feature_api.md。设置6最大显示行数限制setMaximumLines(pairs)按弹幕类型分别设置行数上限Key 为弹幕类型常量Value 为最大行数var maxLinesPair: HashMapInt64, Int64 HashMap() maxLinesPair.put(BaseDanmaku.TYPE_SCROLL_RL, 5) // 滚动弹幕最多5行 context.setMaximumLines(maxLinesPair)传空 Map 即取消行数限制过滤器注销支持 4 种 KeyTYPE_SCROLL_RL、TYPE_SCROLL_LR、TYPE_FIX_TOP、TYPE_FIX_BOTTOMpriority 0的高优先级弹幕不受行数限制类型常量定义见 model_base_danmaku.cj。设置7防弹幕重叠preventOverlappingpreventOverlapping(pairs)控制各类型弹幕是否允许互相遮挡源码var overlapping: HashMapInt64, Bool HashMap() overlapping.put(BaseDanmaku.TYPE_SCROLL_RL, true) // 滚动弹幕防重叠 overlapping.put(BaseDanmaku.TYPE_FIX_TOP, true) // 顶部弹幕防重叠 context.preventOverlapping(overlapping)Value 为true时开启防重叠同一行位置被占用时新弹幕会换到下一行传空 Map 恢复默认允许重叠对应判断方法isPreventOverlappingEnabled()setOverlapping(pairs)是它的别名效果相同源码设置8滚动速度与重复弹幕合并setScrollSpeedFactor(p)滚动速度系数只对左右滚动弹幕生效系数越大滚得越慢默认 1.0源码setDuplicateMergingEnabled(enable)合并重复弹幕相同内容多条弹幕会归并为一条默认关闭alignBottom(enable)滚动弹幕底部对齐排列默认关闭进阶配置与速查表几个不常用但实用的接口setColorValueWhiteList(colors)只显示白名单内的文字颜色setUserIdBlackList(ids)/addUserIdBlackList(ids)按用户 ID 屏蔽ID 为 0 表示游客弹幕setUserHashBlackList(hashes)/addUserHashBlackList(hashes)按用户 hash 屏蔽blockGuestDanmaku(true)一键屏蔽游客弹幕registerConfigChangedCallback(listener)监听任意配置项变更适合做设置面板联动resetContext()重置为初始状态8 大配置速查表配置方法作用默认值set*DanmakuVisibility5类弹幕显隐开关全部显示setDanmakuStyle描边/阴影/投影默认样式setDanmakuTransparency/setScaleTextSize透明度 / 字号缩放255 / 1.0setDanmakuMargin/setMarginTop边距0setMaximumVisibleSizeInScreen同屏弹幕上限-1 自动setMaximumLines分类型行数限制不限制preventOverlapping分类型防重叠允许重叠setScrollSpeedFactor/setDuplicateMergingEnabled滚动速度 / 重复合并1.0 / 关闭常见问题Q1配置后为什么没生效确认配置对象已经通过model.prepare(parser, context)传入且配置在 prepare 之前完成部分修改如字体、字号会触发重新测量下一帧才可见。Q2为什么设置了行数限制某些弹幕还是溢出了priority 0的高优先级弹幕通常用于本机发送会跳过过滤器不受行数与同屏数量限制。Q3图文弹幕不显示图片默认SimpleTextCacheStuffer只支持纯文字请改用SpannedCacheStuffer后调用setCacheStuffer。完整接口文档见 doc/feature_api.md可运行的功能示例见 entry/src/main/cangjie/src/index.cj 与 entry/src/main/cangjie/src/my_view.cj。【免费下载链接】bullet-screen-cj弹幕发送、解析与绘制库项目地址: https://gitcode.com/Cangjie-TPC/bullet-screen-cj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
grammars-v4 中的 PlantUML 类图语法:基于 ANTLR4 的文本化 UML 类图解析器全解析 编程语言编译器开发工具 【免费下载链接】grammars-v4 Grammars written for ANTLR v4; expectation that the grammars are free of actions. 项目地址: https://gitcode.com/gh_mirrors/gr/grammars-v4 点击查看 免费下载 本文以 plantUML/README.md 为骨架&… · 2026/9/24 14:44:37
PaddleSpeech TADEResBlock 源码级解析:Style MelGAN 语音声码器的时序自适应残差模块 人工智能语音音频 【免费下载链接】PaddleSpeech Easy-to-use Speech Toolkit including Self-Supervised Learning model, SOTA/Streaming ASR with punctuation, Streaming TTS with text frontend, Speaker Verification System, End-to-End Speech Translation and Keyword… · 2026/9/24 14:44:37
IronClaw 的 Loop 家族:可替换的 Agent 用户态与“端口即膜”的信任架构 IronClaw 的 Loop 家族:可替换的 Agent 用户态与“端口即膜”的信任架构 【免费下载链接】ironclaw IronClaw is an Agent OS focused on privacy, security and extensibility 项目地址: https://gitcode.com/gh_mirrors/iro/ironclaw
crates/loop/ 是 Iron… · 2026/9/24 15:32:06
单晶金刚石散热技术:北睿科技在半导体芯片热管理中的实践路径 单晶金刚石散热技术是一种利用单晶金刚石极高的热导率(室温下可达2000 W/(mK)以上)将半导体芯片产生的热量快速传导出去的热管理方案。北睿科技围绕该技术,在芯片热管理中探索了从材料制备、界面集成到系统验证的实践路径,旨在为高… · 2026/9/24 15:32:00
django CMS 组合架构解析:内容对象、插件与 Apphook 三大积木如何构成一个站点 CMS后端 【免费下载链接】django-cms The easy-to-use and developer-friendly enterprise CMS powered by Django 项目地址: https://gitcode.com/gh_mirrors/dj/django-cms 点击查看 免费下载 django CMS 站点由三类构建块拼装而成:内容对象… · 2026/9/24 15:31:54
牛油火锅底料全栈制作指南:从重庆老油炼制到 RAG 食谱系统的结构化数据实践 牛油火锅底料全栈制作指南:从重庆老油炼制到 RAG 食谱系统的结构化数据实践 【免费下载链接】all-in-rag 🔍大模型应用开发实战一:RAG 技术全栈指南,在线阅读地址:https://datawhalechina.github.io/all-in-rag/ 项目… · 2026/9/24 15:31:54
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44