2016-06-27 7 views
0

私はこのコードを試しているが、希望の出力が得られていない。ピカソをビットマップで使用したいが失敗する

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."); 
        } 
       }); 

常にログオンします。

+0

なぜこのメソッドを呼び出すべきではありませんか? – Darwind

+0

あなたが直面している問題は何ですか? – Beena

答えて

0

問題は、Targetインスタンスへの強い参照を保持してガベージコレクションを取得するものがないことです。 新しいTarget(){...}は、強い参照がないため呼び出すことはできません。ビューホルダーのフィールドに格納するか、ビューのサブクラスに実装する必要があります。図書館で何が起こってこの男明示的に管理ガベージコレクションの問題

https://stackoverflow.com/a/30681395/5476209

この回答を参照してください。

+0

大変ありがとうございました! –

+0

zoomImageView.setTag(mTarget)で成功しました。 –

+1

このような状況が発生した場合は、githubライブラリに行って、少なくともライブラリの問題を確認してください。問題は既にpicassoライブラリで議論されています。 @dukemars – TapanHP

0

は私がnew Target()...理由があるかどうかわからないが、あなたはこのようなものを使用しようとすることができます:あなたがフラグメントである場合は、getActivity()代わりのthis使用

Picasso.with(this).load(mPicList.get(position)).into(zoomImageView); 

+0

ありがとうございますが、フラグメントはありません。ViewPagerアダプタのみ –

+0

アダプタに 'context'を渡して' this'の代わりに使用できます。 – Marijan

+0

私はzoomImageView.setTag(mTarget)を追加しました。 –

関連する問題