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布局完毕

如果它真的对您有帮助,请将其标记为已接受的答案。它会帮助别人