android实现弹幕功能,Android实现自定义的弹幕效果

一、效果图

先来看看效果图吧~~

二、实现原理方案

1、自定义ViewGroup-XCDanmuView,继承RelativeLayout来实现,当然也可以继承其他三大布局类哈

2、初始化若干个TextView(弹幕的item View,这里以TextView为例,当然也可以其他了~),然后通过addView添加到自定义View中

3、通过addView添加到XCDanmuView中,位置在坐标,为了实现 从屏幕外移动进来的效果

我们还需要修改添加进来TextView的位置,以从右向左移动方向来说,addView后必须将该TextView的位置设置到右边的屏幕外

这样我们采用的方法,是在onLayout()方法中对childView进行layout重新布局设置位置

4、随机冲左侧或右侧出来弹幕itemView,移动采用属性动画来实现平移,从屏幕的一端移动到另一端,当动画结束后,就将

该child从XCDanmuView中remove掉。并重新new一个弹幕itemView,并addView到XCDanmuView中,并开始动画移动

5、本自定义弹幕View支持从左到右和从右到左两个方向,支持自定义设置屏幕弹幕最多显示个数。

三、自定义弹幕效果XCDanmuView的具体实现

1、初始化需要用到的数据变量

private int mWidth;

private int mScreenWidth;

private ListmChildList;

private boolean mIsWorking = false;

private Context mContext;

private int mMaxShowNum = 15;

private int mRowNum = 4;

private int[] mSpeeds = {

3000,4000,5000,6000

};

private int mDelayDuration = 500;

private int[] mBgResIds = {

R.drawable.bg_danmu0,

R.drawable.bg_danmu1,

R.drawable.bg_danmu2,

R.drawable.bg_danmu3

};

private int[] mRowPos = {

150,140,160,150

};

private Random mRandom;

private String[] mStrContents;

public static enum XCDirection{

FROM_RIGHT_TO_LEFT,

FORM_LEFT_TO_RIGHT

}

public enum XCAction{

SHOW,HIDE

}

private XCDirection mDirection = XCDirection.FROM_RIGHT_TO_LEFT;

private void init() {

mScreenWidth = ge

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值