轻量级前端框架助力开发者提升项目效率与性能
1094
2022-10-20
【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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~