Android 使用毕加索加载大型图像
我正在尝试使用毕加索加载大图像Android 使用毕加索加载大型图像,android,performance,android-imageview,picasso,Android,Performance,Android Imageview,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
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对于上面的代码,我试图加载的图像与下面的图像完全相同
我应该从后端调整图像的大小,还是我可以做些什么来避免这种情况?任何帮助都将不胜感激 在您的适配器中有此功能(似乎是),可以多次调用映像加载,因为适配器有多个BindView 那你确定吗
.memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)
?
您最好定义一个内存策略,如果不想存储太多数据,可以使用较短的内存大小或较短的超时。尝试使用大型堆。在
清单文件中插入android:largeheap=“true”
<application
android:name=".MyApplication"
.....
.....
android:largeHeap="true"
.....
.....
android:theme="@style/AppTheme" >
</application>
另外,最好使用.fit()
.fit()
-这将导致请求延迟执行,直到ImageView布局完毕 如果它真的对您有帮助,请将其标记为已接受的答案。它会帮助别人