使用Picasso

时间:2015-09-21 10:26:47

标签: android picasso

我们的应用程序图像资源很重。目前,我们根据设备的分辨率不提供发送图像的服务。从服务器发送的图像通常具有高分辨率(大约900×900)。我几乎没有疑问: 1)下载并存储在文件磁盘缓存中的图像是否与服务器中的原始大小相同。

2)将图像保存在文件磁盘缓存中后,如何处理图像以将其带入内存缓存中。存储在内存缓存中的位图图像是否会根据设备分辨率转换为较低的分辨率?

3)如果目标图像的高度和宽度未知,那么我们如何根据设备分辨率缩小位图图像?根据我们的要求,不可能为imageview提供固定的宽度和高度。有resize(int,int)方法,但问题是,在某些情况下我们无法改变图像的高度和宽度。理想情况下,应该有一些解决方案来缩小图像大小%(比方说20%)。

崩溃不会一直发生,因为它取决于内存。

1 个答案:

答案 0 :(得分:0)

您可以使用 android:largeHeap =“true”来请求更大的堆大小,但这不适用于任何预装的Honeycomb设备。在2.3之前的设备上,您可以使用VMRuntime类,但这不适用于Gingerbread及更高版本。

尽可能增加限制的唯一方法是通过NDK执行内存密集型任务,因为NDK不会像SDK一样强加内存限制。

或者,您只能加载当前在视图中的模型部分,并根据需要加载其余部分,同时从内存中删除未使用的部分。但是,这可能无法实现,具体取决于您的应用程序。

Example:
<application android:largeHeap="true" ....</application>