Git Product home page Git Product logo

muti-barrage's Introduction

Hi,我是九心

Anurag's GitHub stats

在哪里找到我:

掘金 公众号 简书
点我 九心说 点我

关于我:

  • 🙋🏻 Android 程序员,懂一点 Android Jetpack \ Flutter
  • 🏀 运动爱好者,游戏爱好者
  • 📫 [email protected]

技能点

Android Flutter Jenkins JavaScript Vue.js

最近更新:

我的作品

Above are the last 3 pictures posted by @jiuxin98!

muti-barrage's People

Contributors

mcyp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

muti-barrage's Issues

barrageView.destroy()后想重新加载数据怎么办

首先非常感谢作者的开源库,很好。

我现在碰到一个需求是,类似9宫格相册,点击预览大图,大图上面有弹幕。但是每个图片的对应的弹幕不同,并且我每次滑动一下都要从新取下数据,再从新展示弹幕。

我在ViewPager的onPageSelect中,destroy了前一个pager的弹幕,但是当我滑动回来从新赋值数据,弹幕就不展示了。

怎么办呢,谢谢

#1102 java.util.concurrent.RejectedExecutionException

Task java.util.concurrent.FutureTask@1bb4925 rejected from java.util.concurrent.ThreadPoolExecutor@4a59afa[Terminated, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0]

com.orient.tea.barragephoto.adapter.BarrageAdapter.add(BarrageAdapter.java:170)

bugly统计的项目崩掉了,在add弹幕的时候,希望可以解决一下~

在进行内存分析时,发现点问题。

   valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                int value = (int) animation.getAnimatedValue();
                //Log.e(TAG, "value:" + value);
                if(cancel){
                    valueAnimator.cancel();
                    BarrageView.this.removeView(view);
                }
                view.layout(value, line * (singleLineHeight + barrageDistance) + barrageDistance / 2, value + itemWidth, line * (singleLineHeight + barrageDistance) + barrageDistance / 2 + itemHeight);
            }
        });
  

int value = (int) animation.getAnimatedValue();, 由于Integer的缓存池是-128-127,所以内存大量重复创建Integer对象,是否能优化下呢?我目前优化的方案是:

valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                float value = animation.getAnimatedFraction();
                //Log.e(TAG, "value:" + value);
                if (cancel) {
                    valueAnimator.cancel();
                    BarrageView.this.removeView(view);
                }
                view.layout((int) (width - (width + itemWidth) * value), line * (singleLineHeight + barrageDistance) + barrageDistance / 2, (int) (width - (width + itemWidth) * value) + itemWidth, line * (singleLineHeight + barrageDistance) + barrageDistance / 2 + itemHeight);
            }
        });

barrageView.destroy()执行之后,BarrageView中getSpeed方法中Log仍在打印

BarrageView被销毁,该Log还在打印,说明某些资源还没有被关闭,我采用在BarrageAdapter的destroy方法中将mHandler置空,然后在mHandler发送消息和移除消息的都做了是否为空的判断解决了这个问题。还请原作者再检查一下代码,如有更好的解决方法,还麻烦原作者告知,以求共同进步,谢谢。

ArrayIndexOutOfBoundsException

//设置弹幕数据
List dataList = new LinkedList<>();
for (int i = 0; i < content.length; i++) {
dataList.add(new BarrageData(content[i], 0,i));
}
mAdapter.addList(dataList);

这样添加数据会经常角标越界

异常日志
java.lang.ArrayIndexOutOfBoundsException: length=0; index=0
at com.orient.tea.barragephoto.ui.BarrageView.getSpeed(BarrageView.java:314)
at com.orient.tea.barragephoto.ui.BarrageView.addBarrageItem(BarrageView.java:263)
at com.orient.tea.barragephoto.adapter.BarrageAdapter.createItemView(BarrageAdapter.java:101)
at com.orient.tea.barragephoto.adapter.BarrageAdapter.access$500(BarrageAdapter.java:31)
at com.orient.tea.barragephoto.adapter.BarrageAdapter$BarrageAdapterHandler.handleMessage(BarrageAdapter.java:275)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.