我有一个recyclerView
带有匹配的父项。在recyclerView
项中,我有48个相对布局和一个背景,并且滚动时没有任何问题。由于我在项目中添加了lottie animationView
,因此recyclerView
滚动但有滞后。我试图更改缓存大小,在它与窗口分离时暂停动画,压缩背景图像,使用另一个线程,将图像转换为位图,但是没有帮助。
我应该尝试绘制视图还是类似的东西,或者还有其他可以做的事情?
答案 0 :(得分:0)
在搜索和测试另一种播放动画的方式一周之后,我找到了解决方案
解决方案是使用不同的方法来播放gif之类的动画,但是gif具有透明性,如果您的动画具有透明部分,则该动画具有非常难以使用的白色边框,另一种方法是使用apng,apng是png的动画版本,它解决了透明性的问题,但是在recyclerView中它有问题,例如当您向上或向下滚动recyclerView时,该动画不显示在屏幕上,它将停止并且您应该在连接到任何动画时设置动画Windows,它会降低性能,但是此问题的最终解决方案是什么?
webp。
webp是由Google创建的一种格式,您可以在带有fresco
库的android系统中使用它,并使用webp动画图像,该图像没有透明性问题,并且性能非常高,实际上动画尺寸小于抽签动画!
并且非常易于使用,我添加了该库,并轻松调用它:
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(yourUri)
.setAutoPlayAnimations(true)
.build();
并轻松将控制器设置为SimpleDraweeView:
simpleDraweeView.setController(controller);
这是我对自己的问题的解决方案, 希望对您有帮助。
答案 1 :(得分:0)
尝试将recyclerview放在NestedScroll View的旁边。 并在recyclerView中放入nestedscrollingEnabled = false。