【Android 常见控件使用】DanmakuView(弹幕)

网友投稿 1094 2022-10-20

【Android 常见控件使用】DanmakuView(弹幕)

【Android 常见控件使用】DanmakuView(弹幕)

文章目录

​​弹幕使用​​

​​一、准备工作​​​​二、任务分析与实施​​

​​1.MainActitvity 中获取界面控件​​​​2.播放视频​​​​3.初始化弹幕​​​​4.随机生成与添加弹幕​​​​5.效果展示​​

弹幕使用

一、准备工作

导入播放的视频导入基本组件:VideoView、DanmakuView、EditText、Button

​​返回顶部​​

二、任务分析与实施

1.MainActitvity 中获取界面控件

public class MainActivity extends AppCompatActivity { // 获取控件 private EditText input; private Button submit; private DanmakuView danmaku; private VideoView videoView; private DanmakuContext danmakuContext; private LinearLayout layout; private boolean showDanmaku; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化界面控件 layout = findViewById(R.id.layout); input = findViewById(R.id.input); submit = findViewById(R.id.submit); danmaku = findViewById(R.id.danmaku); videoView = findViewById(R.id.videoView); } }

​​返回顶部​​

2.播放视频

在MAinActivity中创建playVido方法用于播放视频文件

// 播放视频private void playVideo() { // 获取视频路径 String uri = "android.resource://" + getPackageName() + "/" + R.raw.speed; //String uri = "G:\\Projects\\AndroidStudioProjects\\Barrage\\app\\src\\main\\res\\raw\\sun.mp4"; if (uri != null) { // 配置到 VideoView 组件中 videoView.setVideoURI(Uri.parse(uri)); videoView.start(); } else { // 将背景设置为透明 videoView.getBackground().setAlpha(0); }}

​​返回顶部​​

3.初始化弹幕

在MAinActivity中创建一个initDanmaku方法,用于初始化弹幕并调用弹幕的随机生成与添加方法

​​返回顶部​​

4.随机生成与添加弹幕

generateDanmakus():随机生成弹幕

addDanmaku():添加弹幕至弹幕组件

// 添加弹幕private void addDanmaku(String content, boolean border) { // 创建弹幕对象,设置从右向左滚动 BaseDanmaku baseDanmaku = danmakuContext.mDanmakuFactory.createDanmaku(BaseDanmaku.TYPE_SCROLL_RL); baseDanmaku.text = content; // 设置内容 baseDanmaku.padding = 6; // 设置边距 baseDanmaku.textSize = 25; // 设置弹幕字体大小 baseDanmaku.textColor = Color.WHITE; // 设置弹幕字体颜色 baseDanmaku.setTime(danmaku.getCurrentTime()); // 设置当前时间 if (border){ baseDanmaku.borderColor = Color.BLUE; // 设置边框颜色 } // 添加弹幕至弹幕视图组件中 danmaku.addDanmaku(baseDanmaku);}// 随机生成弹幕private void generateDanmakus() { // 启用线程随机生成弹幕 new Thread(new Runnable() { @Override public void run() { while (showDanmaku) { int num = new Random().nextInt(300); String content = ""+num; addDanmaku(content,false); try { Thread.sleep(num); } catch (Exception e){ e.printStackTrace(); } } } }).start();}

​​返回顶部​​

5.效果展示

完整代码

​​返回顶部​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springcloud feign传输List的坑及解决
下一篇:PyDriller- 解析 Git repo 的 Python 框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~