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性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...