2016-06-27 1 views
0

Я пробовал этот код, но не получал желаемого результата.Я хочу получить растровое изображение с использованием 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."); 
        } 
       }); 

Он всегда печатает журнал onPrepareLoad why ????

+0

Почему он не должен называть этот метод? – Darwind

+0

В чем проблема, с которой вы столкнулись? – Beena

ответ

0

Ваша проблема в том, что ничто не содержит ссылки на экземпляр Target, поэтому он получает собранный мусор. Вы не можете просто вызвать new Target() {...}, потому что нет никаких сильных ссылок на него. Вам нужно сохранить его в поле в держателе вида или реализовать его в подклассе вида.

Смотрите этот ответ:

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

этот парень явно удалось проблема сбора мусора происходит в библиотеке.

+0

большое спасибо, сэр! –

+0

успех с zoomImageView.setTag (mTarget); –

+1

вообще не проблема, когда у вас возникла такая ситуация, как любезно пойти в эту библиотеку github и по крайней мере проверить проблемы в библиотеке, ваша проблема уже обсуждалась там в библиотеке picasso. @dukemars – TapanHP

0

Я не уверен, если есть причина для new Target()..., но вы можете попробовать использовать что-то вроде этого:

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

Если вы находитесь в фрагменте, используйте getActivity() вместо this.

+0

спасибо, но нет фрагмента, только адаптер ViewPager –

+0

Вы можете передать «контекст» в свой адаптер и использовать его вместо 'this' – Marijan

+0

спасибо, что добавляю zoomImageView.setTag (mTarget); –

Смежные вопросы