android-毕加索可以替我排队吗?

android-毕加索可以替我排队吗?,第1张

概述关于毕加索的行为,这是一个我所不知道的关键点.假设您正在展示十个项目的幻灯片.说,他们在屏幕上每个十秒钟.理想的行为是这样的:在幻灯片放映开始时,我只需执行以下 *** 作:picasso.get(url1)picasso.get(url2)picasso.get(url3)picasso.get(url4)picasso.get(url5)

关于毕加索的行为,这是一个我所不知道的关键点.

假设您正在展示十个项目的幻灯片.说,他们在屏幕上每个十秒钟.

理想的行为是这样的:在幻灯片放映开始时,我只需执行以下 *** 作:

picasso.get( url1 )picasso.get( url2 )picasso.get( url3 )picasso.get( url4 )picasso.get( url5 )picasso.get( url6 )picasso.get( url7 )picasso.get( url8 )picasso.get( url9 )picasso.get( url10 )

而且,事实上,毕加索会一次排在队列中.

如果我告诉毕加索一次预热10个网址,这是怎么回事?

毕加索是否可以一次只做一件事情,是否有这样的选择?

(随之而来的其他问题是,您可以取消队列,还是…?)

壁画

感谢这个页面上的一个惊人答案@alicanozkara我是第一次学习

https://github.com/facebook/fresco

(1.3万颗星)无论好坏,我认为毕加索时代可能已经过去.

解决方法:

我认为仅使用毕加索,您可以实现:

1)使用fetch()异步将所有图像加载到缓存中,如下所示:

Picasso.with(context).load(URL).fetch();

您还可以为要尽早加载的图像添加优先级:(也许为幻灯片的前几张图像设置高优先级)

Picasso.with(context).load(URL).priority(Picasso.Priority.HIGH) // Default priority is medium.fetch();

2)关于取消队列,您可以在图像中添加一个公共tag(),并且可以随时暂停/取消/恢复!

private static final Object TAG_OBJECT = Object();Picasso.with(context).load(URL).tag(TAG_OBJECT) // can be any Java object, must be the same object for all requests you want to control together.

然后我们可以像这样控制标签:

Picasso.with(context).pauseTag(TAG_OBJECT)//.resuMetag(TAG_OBJECT)//.cancelTag(TAG_OBJECT)

3)我想建议的另一件重要事情是,当您预加载图像时,仅将它们保存到磁盘缓存中,而仅在显示时才将它们加载到内存缓存中.这将防止从内存缓存中刷新其他重要图像:

Picasso  .with(context).load(URL).memoryPolicy(MemoryPolicy.NO_STORE) //Skips storing the final result into memory cache..fetch()

4)要按顺序将图像加载到队列中,可以使用Picasso.Builder中的executor(ExecutorService)方法传递自己的ExecutorService(在您的情况下为SingleThreadExecutor).

您甚至可以通过在Picasso.Builder类中找到的downloader(Downloader)方法和memorycache(Cache)方法来更改磁盘缓存的大小.

其他很棒的图书馆:

Glide

Fresco

总结

以上是内存溢出为你收集整理的android-毕加索可以替我排队吗?全部内容,希望文章能够帮你解决android-毕加索可以替我排队吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1095212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存