一个Android上的弹幕控件Open Danmaku

弹幕现在很流行,特别是在视频播放时,安卓上没有简单好用的弹幕控件,于是自己写了一个.

项目地址:
https://github.com/linsea/OpenDanmaku

或者国内开源中国上的镜像:
http://git.oschina.net/dictfb/OpenDanmaku

使用方法

完整的使用方法请查看项目的Demo.

1. 在build.gradle文件中加入依赖.

dependencies {
    compile ‘com.linsea:opendanmaku:[email protected]‘
 }

2. 在布局文件中加入自定义的弹幕View.

<com.opendanmaku.DanmakuView
        android:id="@+id/danmakuView"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        app:start_Y_offset="0.2"
        app:end_Y_offset="0.8"
        app:max_row="4"
        app:max_running_per_row="2"
        app:pick_interval="1000"
        app:show_debug="false" />

3. 在Activity中生成弹幕对象,并加入到播放列表中.

mDanmakuView = (DanmakuView) findViewById(R.id.danmakuView);

// add danmaku items:
mDanmakuView.addItem(list, true);
mDanmakuView.addItem(new DanmakuItem(this, "Hello World", mDanmakuView.getWidth());

//show danmaku and play animation:
mDanmakuView.show();

//hide and pause playing:
mDanmakuView.hide();

//release all playing and waiting items:
mDanmakuView.clear();

DanmakuView的自定义属性

* start_Y_offset

第一条播放航道距离弹幕View上边缘的偏移量,注意值是百分比量,以弹幕View的高度为基准,简而言之就是弹幕View的上边缘空出多少百分比.

* end_Y_offset

与上一个属性类似,最后一条播放航道距离弹幕View上边缘的偏移量,注意值是百分比量,以弹幕View的高度为基准,主要作用是便于在弹幕View的底部留出一定的空白.

* max_row

设置最多多少条播放航道.

* max_running_per_row

每条航道上最多同时有多少条弹幕运行.

* pick_interval

每隔多少毫秒取出一条弹幕来播放.

* show_debug

是否显示航道线及播放帧率,调试时很有用,主要用于调试.

时间: 2024-10-24 23:24:50

一个Android上的弹幕控件Open Danmaku的相关文章

C#在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级

首先在form1的窗体载入中新建了一个Class1对象并将本身的引用传递进入其构造函数,然后在Class1的构造函数中创建一个线程.该线程所代理的方法事件是本类中的一个add方法.而add方法的内容则是在form1上放一个textbox.然而这个流程你需要注意的有几个问题:1.哪个是主线程?所谓主线程是第一个启动的线程,是从main开始的.form1的这个窗体是由主线程创建的.2.Thread t的线程是什么?t是由主线程创建的,t的操作内容是在由主线程创建的窗体上放一个textbox.也就是说

用c/c++混合编程方式为ios/android实现一个自绘日期选择控件(一)

本文为原创,如有转载,请注明出处:http://www.cnblogs.com/jackybu 前言 章节: 1.需求描述以及c/c++实现日期和月历的基本操作 2.ios实现自绘日期选择控件 3.android实现自绘日期选择控件 目的: 通过一个相对复杂的自定义自绘控件来分享: 1.ios以及android自定义自绘控件的开发流程 2.objc与c/c++混合编程 3.android ndk的环境配置,android studio ndk的编译模式,swig在android ndk开发中的作

Android常用酷炫控件(开源项目)github地址汇总

转载一个很牛逼的控件收集贴... 第一部分 个性化控件(View) 主要介绍那些不错个性化的 View,包括 ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView.ScrollView.TimeView.TipView.FlipView.ColorPickView.GraphView.UI Style 等等. 一.ListView android-pulltorefresh一个强大的拉动

Android UI-自定义日历控件

Android UI-自定义日历控件 本篇博客笔者给大家分享一个日历控件,这里有个需求:要求显示当前月的日期,左右可以切换月份来查看日期. 我们想一想会如何去实现这样的一个控件,有开源的,但可能不太满足我们的特定的需求,这里笔者自定义了一个,读者可以根据自己的需求来修改代码.下面来说一下实现的思路: 首先我们要显示当前月份,自然我们要计算出当前的日期,并且把每一天对应到具体的星期,我们会有以下效果: 我们先想一下这样的效果用什么控件可以实现?很自然可以想到用网格视图GridView,但这里笔者使

Android Studio 入门——002 控件篇

最近看的书是第一行代码老师推荐--感觉讲的很基础,很对小白的胃口.好了不罗嗦别的了,干货. ------------------------------------------------------------------------------------------------------------ 控件篇 1.TextView这是一个再简单不过的控件---用来在页面上显示一些文本信息[这个控件必须声明的属性--宽.高.内容.id] 2.Button是程序用于和用户进行交互的一个重要控件

Android自定义控件之日历控件

Android自定义控件之日历控件 2015-10-23 Android开发中文站 三月份学习android,至今也有半年有余,中间也做过两个项目,但是依然感觉自己做的应用不是很有新意,比不上应用市场上那些应用如此绚丽.所以自己仍需继续努力.学习至今,仍感觉自定义控件是一块硬骨头,还没修炼到身后的内功,下面就切入正题,以一次项目的需求,来实现一个自定义的日历控件.效果图先来一发. 我们分析下效果图,然后确定我们的需求. (1).绘制星期的自定义View,用于标识日期的礼拜. (2).绘制日期的自

Android调用相册拍照控件实现系统控件缩放切割图片

android 下如果做处理图片的软件 可以调用系统的控件 实现缩放切割图片 非常好的效果 今天写了一个demo分享给大家 package cn.m15.test; import java.io.ByteArrayOutputStream;import java.io.File;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.net.Ur

Android 性能优化——之控件的优化

Android 性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向自定义View的优化. 1.首先先说一下我们在自定义View中可能会犯的3个错误: 1)Useless calls to onDraw():我们知道调用View.invalidate()会触发View的重绘,有两个原则需要遵守,第1个是仅仅在View的内容发生改变的时候才去触发invalidate方法, 第2个是尽量使用ClipRect等方法来提高绘制的性能. 2)Useless pixel

Android开发之基本控件和详解四种布局方式

Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方式Android和iOS还是区别挺大的,在iOS中有Frame绝对布局和AutoLayout相对布局.而在Android中的布局方式就比较丰富了,今天博客中会介绍四种常用的布局方式.先总结一下控件,然后再搞一搞基本方式,开发环境还是用的Mac下的Android Studio.开始今天的正题, 虽然A