我尝试了这段代码,但没有得到所需的输出。
Picasso.with(getApplicationContext()).load(mPicList.get(position)).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
zoomImageView.setImageBitmap(bitmap);
Logger.getInstance().v("qw", "ViewPagerAdapter.134.onBitmapLoaded.");
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
Logger.getInstance().v("qw", "ViewPagerAdapter.139.onBitmapFailed.");
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
Logger.getInstance().v("qw", "ViewPagerAdapter.144.onPrepareLoad.");
}
});
它总是打印登录PrepareLoad为什么????
答案 0 :(得分:0)
我不确定new Target()...
是否有原因,但您可以尝试使用以下内容:
Picasso.with(this).load(mPicList.get(position)).into(zoomImageView);
如果您在片段中,请使用getActivity()
代替this
。
答案 1 :(得分:0)
您的问题是没有任何内容保留对Target实例的强引用,因此它会被垃圾收集。 您无法调用新的Target(){...},因为它没有任何强引用。您需要将其存储在视图持有者的字段中,或者在视图的子类上实现它。
看到这个答案:
https://stackoverflow.com/a/30681395/5476209
这家伙明确管理了库中发生的垃圾收集问题。