在Picasso Android中实现“withDelay”(用于略读)

在Picasso Android中实现“withDelay”(用于略读),第1张

概述在处理许多滚动图像时,您必须避免在略读时加载的问题,同时用户正在快速滚动.最简单且通常最好的解决方案非常简单:在做任何事情之前,只是引入一个小延迟(比如说.350).如果图像已经在缓存中,只需加载它.否则只需稍等一下–然后完全正常进行.凭借壮观的毕加索,令人沮丧的是,看起

在处理许多滚动图像时,您必须避免在略读时加载的问题,同时用户正在快速滚动.最简单且通常最好的解决方案非常简单:

在做任何事情之前,只是引入一个小延迟(比如说.350).

如果图像已经在缓存中,只需加载它.否则只需稍等一下 – 然后完全正常进行.

凭借壮观的毕加索,令人沮丧的是,看起来有一个叉子实际上就是这样,它有一个“withDelay”选项**(见https://github.com/square/picasso/issues/248)

我害怕叉子.

但是有可能在毕加索这样做,也许使用自定义的“目标”?所以,

我普通的Picasso调用(在getVIEw的末尾……)

Picasso.  with(State.mainContext).  load(imagefile.getUrl()).  placeholder(R.drawable.default).  noFade().  into(v.im);

而我想我想要这样的东西…….

Picasso.  with(State.mainContext).  load(imagefile.getUrl()).  placeholder(R.drawable.default).  noFade().  into(new Target()     {     simply wait .350 before proceeding completely normally...     });

我不能这样做,任何人都可以做到吗?

解决方法:

编辑:

显然,Square的人们开始向前推进他们的东西.
https://github.com/square/picasso/pull/665

所以Lucasr接管并重新组织了一些代码.现在暂停/恢复可以在组中完成,所有请求都有一个DEFAulT_GROUP,显然ScrollListener的想法已被抛弃,因为它太过于简单的实现,让他们烦恼,但它是相同的代码@ a.bertucci发布的.

public class SampleScrollListener implements AbsListVIEw.OnScrollListener {  private final Context context;  private static final Object scrollTag = new Object(); // this can be static or not, depending what u want to achIEve  public SampleScrollListener(Context context) {    this.context = context;  }  @OverrIDe  public voID onScrollStateChanged(AbsListVIEw vIEw, int scrollState) {    final Picasso picasso = Picasso.with(context);    if (scrollState == SCRolL_STATE_IDLE || scrollState == SCRolL_STATE_touch_SCRolL) {      picasso.resuMetag(scrollTag);    } else {      picasso.pauseTag(scrollTag);    }  }  @OverrIDe  public voID onScroll(AbsListVIEw vIEw, int firstVisibleItem, int visibleItemCount,                       int totalitemCount) {    // Do nothing.  }}

这个实现的想法是,您可以使用上下文标记您的请求,但同样可以使用默认标记或自定义标记进行标记.

原始答案:

这里有关于此功能的毕加索已经有一个PullRequest:https://github.com/square/picasso/pull/561

它与你的建议有点不同,但效果很好(我在我的应用程序上使用).您可以选择暂停/继续将图像分派到ImageVIEws并使用onScrollListener暂停n恢复它.

它的代码很简单:

ListVIEw.setonScrollListener(new PicassoScrollListener(context));

我同意叉子很烦人,因为它们可能会过时,但可以自己分叉,并保持最新状态,直到它在Picasso上合并为止.

>叉毕加索原创
>将其添加为远程https://github.com/sockeqwe/picasso并获取它
>用picasso / master创建你的分支,并从sockeqwe / picasso挑选那些10个提交
>随意拉毕加索/大师

这不是理想的,但编程都是为你完成的,而且效果很好.

或者你可以使用我的应用程序fork compile’c​​om.eyeem.picasso:picasso:2.3.3-SNAPSHOT’并密切关注该pull请求,直到它被合并并且你还原.

总结

以上是内存溢出为你收集整理的在Picasso Android中实现“withDelay”(用于略读)全部内容,希望文章能够帮你解决在Picasso Android中实现“withDelay”(用于略读)所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存