private void init() { danmakuView.prepare(new BiliDanmukuParser(), danmukuContext); danmakuView.setCallback( new DrawHandler.Callback() { @Override public void prepared() { danmakuView.start(); } @Override public void updateTimer(DanmakuTimer timer) {} @Override public void danmakuShown(BaseDanmaku danmaku) {} @Override public void drawingFinished() {} }); danmakuView.enableDanmakuDrawingCache(true); }
@OnClick(R.id.danmu_add) void addDanmu() { i++; BaseDanmaku danmaku = danmukuContext.mDanmakuFactory.createDanmaku(BaseDanmaku.TYPE_SCROLL_RL); Log.d("tag", "测试用弹幕 + " + i + "条"); danmaku.text = "测试用弹幕 + " + i + "条"; danmaku.padding = 10; danmaku.priority = 1; // 1:一定会显示, 一般用于本机发送的弹幕,但会导致行数的限制失效 danmaku.isLive = false; danmaku.textSize = 20; danmaku.textColor = Color.WHITE; danmaku.textShadowColor = 0; // 重要:如果有图文混排,最好不要设置描边(设textShadowColor=0),否则会进行两次复杂的绘制导致运行效率降低 danmakuView.addDanmaku(danmaku); }