我正在使用Picasso库通过以下代码下载图像,我必须通过调整大小并将其转换为圆形来循环加载许多图片。有时会成功加载图像,有时会在回调中调用onError方法而不是onSuccess。而且我收到此错误SkImageDecoder::Factory returned null Error
。当我卸载该应用程序时,然后在重新安装后,大多数图像成功加载。问题到底是什么,请提出解决方案。
码:
int dp = (int) resources.getDimension(R.dimen.marker_pic_size);
Picasso.with(context).load(profilePic_url)
.transform(new CircleTransform())
.resize(dp, dp)
.into(tempView, new Callback() {
@Override
public void onSuccess() {
Log.d("usm_onSuccess", profilePic_url);
}
@Override
public void onError() {
Log.d("usm_onError", profilePic_url);
}
});
最佳答案
通过使用Target可以解决您的问题。
target = new Target() {
@Override
public void onPrepareLoad(Drawable drawable) {}
@Override
public void onBitmapLoaded(Bitmap bitmap, LoadedFrom arg1) {
if(bitmap != null) {
tempView.setImageBitmap(bitmap);
}
}
@Override
public void onBitmapFailed(Drawable drawable) {}
};
...
int dp = (int) resources.getDimension(R.dimen.marker_pic_size);
Picasso.with(context).load(profilePic_url)
.transform(new CircleTransform())
.resize(dp, dp)
.into(target);
tempView.setTag(target);
知道issue。您可能还会看到this以了解更多信息。