我想显示一个约50页的ViewPager,每页包含不同的图像.使用毕加索,前20-25页的工作完美.然而,在这一点上,我得到一个OutOfMemoryError,并且根本没有加载图像:
Throwing OutOfMemoryError "Failed to allocate a 7477932 byte allocation with 1932496 free bytes"
我在PagerAdapter中使用以下代码:
@Override public Object instantiateItem(final ViewGroup container,final int position) { View view = getView(); Picasso picasso = getImageLoader(mContext); picasso.load(getUrl(position)).fit().into((ImageView) view.findViewById(R.id.imageview)); container.addView(view); return view; } @Override public void destroyItem(final ViewGroup container,final int position,final Object object) { container.removeView((View) object); }
我可以做些什么来避免这种情况?
解决方法
我找到了
this issue.
有几点指出:
>使用skipMemoryCache()
>使用builder.executor(Executors.newSingleThreadExecutor());
>使用毕加索的一个实例:不要每次使用毕加索.Builder创建一个新的实例.
我设法解决了我最后一个问题.