我想显示一个照片系列,照片之间没有空隙,照片以固定的间隔变化。我意识到毕加索会在开始下载之前初始化ImageView,无论它是否在调用into()之前先获取()还是不获取,它都会这样做。
我使用fetch()来使图像之间的间隙较小,并使用.placeholder(R.color.black),但即使从内存中加载图像,该间隙仍然可见。
我的代码看起来像这样
Picasso.with(getContext()).load(url).fetch();
然后延迟[目前已解决,我想根据网络速度进行调整]
Picasso.with(getContext()).load(url).into(screenSurface);
我注意到fetch()不支持任何回调参数并返回void,因此似乎无法知道何时预热了缓存。
两个问题:
[我知道我可以用某种方式手动编码,但是如果Picasso支持,我想使用它。]
根据源,看起来好像fetch
什么都不做,包括通知任何潜在的听众。不幸的是,FetchAction
它不是公共类,因此您也不能覆盖此功能。
您可以通过使用自定义Target
子类来解决此问题,如下所示:
Picasso.with(getContext()).load(url).into(new Target() {
@Override public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
// cache is now warmed up
}
@Override public void onBitmapFailed(Drawable errorDrawable) { }
@Override public void onPrepareLoad(Drawable placeHolderDrawable) { }
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句