我试图使用Picasso加载大图像
public static final int MAX_WIDTH= 500;
public static final int MAX_HEIGHT= 500;
Picasso.with(imageView.getContext())
.load(Utils.imagePath(list.get(position).getImage()))
.resize(MAX_WIDTH,MAX_HEIGHT)
.onlyScaleDown()
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
.into(imageView);
但我得到致命异常:上面代码的java.lang.OutOfMemoryError,我试图加载的图像与下面的图像完全相同
我应该从后端调整图像大小还是我可以做些什么来避免这种情况?任何帮助将不胜感激。
答案 0 :(得分:0)
在你的适配器中使用它(似乎是),因为适配器多个绑定视图,所以可以多次调用图像加载。
所以你确定
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
如果您不想存储太多数据,最好定义内存策略,可能是内存不足或短暂超时。
答案 1 :(得分:0)
尝试大堆。在android:largeheap="true"
文件中插入manifest
<application
android:name=".MyApplication"
.....
.....
android:largeHeap="true"
.....
.....
android:theme="@style/AppTheme" >
</application>
此外,最好使用.fit()
。
.fit()
- 这将导致请求的延迟执行,直到ImageView布局完毕。