android – 如何处理毕加索OutOfMemoryError?

前端之家收集整理的这篇文章主要介绍了android – 如何处理毕加索OutOfMemoryError?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想显示一个约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创建一个新的实例.

我设法解决了我最后一个问题.

原文链接:/android/310784.html

猜你在找的Android相关文章