下载缩略图而不是整个图像

时间:2012-08-01 00:28:56

标签: java android image url download

我的应用程序显示了一些杂志的头版。那些图像是高分辨率的。如果我只是要显示低分辨率图像,那么下载整个图像是没用的,电池/时间/数据消耗。所以问题是:如何从图像URL获取缩略图URL,这样我就不需要下载图像了?

3 个答案:

答案 0 :(得分:4)

使用服务器端进程(PHP,ASP等)创建缩略图,然后从新URL下载。

答案 1 :(得分:3)

我认为Dave是对的,最佳解决方案是修改图像服务器端。但是,听起来你可能无法100%控制下来的图像。在提取较少的数据方面,这并没有给你留下很多选择......

如何最大限度地减少设备上的内存使用量,可以将图像下采样到合适的大小,以便保存在内存和显示中的图像尽可能大。

你可以使用看起来像这样的代码(记得清理你的流):

        FileInputStream fis = new FileInputStream(new File(path));
        final BufferedInputStream is = new BufferedInputStream(fis);
        final Options opt = new BitmapFactory.Options();

        // THIS IS THE IMPORTANT LINE:
        opt.inSampleSize = sampleSize;

        Bitmap img = BitmapFactory.decodeStream(is, null, opt);

您可以在此处阅读:http://developer.android.com/training/displaying-bitmaps/load-bitmap.html了解如何获取适当的样本量并使用 inJustDecodeBounds

耐心等待......算术很难。

答案 2 :(得分:0)

如果图像是隔行扫描/逐行下载的,那么您可以想象只下载一些文件数据并使用它来创建缩略图,但这是一个非常专业的用例,不太可能得到广泛支持。 / p>

否则,鉴于深入了解支持检索特定字节范围的图像格式服务器,您可以选择性地仅下载必要的图像数据以创建缩略图,但是将非常困难。

很有可能,虽然你的想法很有趣并且可能有用,但却无法做到这一点

根据杂志的数量,您可能会考虑使用单独的服务器来下载封面图像并准备缩略图。然后,您的移动应用程序可以首先查询该服务器,如果有可用的缩略图,请使用它而不是下载完整尺寸的图像。

相关问题