我想展示一个包含大约50页的ViewPager,每一页都包含不同的图片。使用Picasso时,前20-25页可以完美显示。但是到了那个点,我会收到一个OutOfMemoryError,所有的图像都不会加载:
我想展示一个包含大约50页的ViewPager,每一页都包含不同的图片。使用Picasso时,前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);
}
我该怎么做才能避免这种情况?
builder.executor(Executors.newSingleThreadExecutor());
。 - afruzan.fit()
和/或.memoryPolicy(MemoryPolicy.NO_STORE, MemoryPolicy.NO_CACHE)
就足够了。 - afruzan