在Android上获取/显示图片的首选方式?

时间:2015-11-25 16:50:05

标签: android image-processing android-image picasso

让我们考虑以下内容,我有一个应用程序,其中有几十张照片,我想在任何给定时间向用户显示。

现在我为每个图片创建多个文件,为不同的屏幕尺寸调整大小并将它们存储在各自的可绘制文件夹中。

它大大增加了我的应用程序的大小。

所以这是我的问题:是否可以将图像存储在服务器上并使用像Picasso,Fresco或其他任何东西(对任何东西开放)的图像库来获取该图像并将其缩小以用于设备&#39 ; s运行而不会有内存不足的风险?

我担心拿取大图像,将其加载到内存中然后调整大小会导致同样的问题,就像尝试在没有可用内存的旧设备上显示它一样。

2 个答案:

答案 0 :(得分:0)

您可以根据客户端信息编写从服务器请求不同图像大小的方法。只需编写一种方法来测量屏幕大小,然后根据URL端点(如http://myimageserver.com/images/ldpi/image1.png)请求相应的图像。

在将图像保存到本地文件存储之前,您可以在下载后进行优化,例如缩放。

答案 1 :(得分:0)

使用信誉良好的图片加载库是一种有效的方法(我自己最喜欢的是Glide)。

您问题的答案实际上取决于您想要展示的图像数量!如果有很多,那么将它们存储在服务器上可能是最好的,但也是最耗时且最昂贵的(无论是时间还是金钱)。

您的其他(更简单)选项是将原件保留在assets文件夹中,并使用图像加载器为您缩放和加载它们。资源文件夹中图像的正确路径为file:///android_asset/your_image_here.jpg。这样,您只需在apk中保留每张照片的一个版本,并且加载速度要快得多。