我希望得到一个位图使用毕加索但失败了

时间:2016-06-27 10:05:19

标签: android picasso

我尝试了这段代码,但没有得到所需的输出。

 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为什么????

2 个答案:

答案 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

这家伙明确管理了库中发生的垃圾收集问题。