教你写一个弹幕库,确定不了解一下?,请查收

花费了不少闲暇的时间,故打算在此总结一下。

老规矩,在写下文之前,我们先看一下效果:

单视图弹幕应用

多视图弹幕例子

ails/93206282)目录

会遇到的坑

  1. 多视图如何处理

  2. 如何防碰撞

  3. 触摸事件如何检测

#_2_总体一览

我们先看一下弹幕的产生过程:

整体并不难, BarrageAdapter负责管理数据, BarrageView负责管理视图,数据被加入 BarrageAdapter后,单线程的线程池控制子 View 的产生速度,定时发送消息给 BarrageAdapterHandler,生成弹幕的子 View 之后经过一些列操作添加进 BarrageView中。

#_3_代码一览

这里,我不会把整段代码都贴上,而是根据弹幕产生过程逐步展开。

1.数据定义

所有弹幕的数据都必须实现 DataSource接口, getType()方法可以帮我们确定视图的布局。

public interface DataSource {

// 返回当前的类型

int getType();

// 返回生成的时间

long getShowTime();

}

2.定义 IBarrageView接口

BarrageView需要实现的方法,让 调用

public interface IBarrageView {

// 添加视图

void addBarrageItem(View view);

// 获取是否存在缓存

View getCacheView(int type);

// 发送View间隔

long getInterval();

// 循环的次数

int getRepeat();

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值