从URL获取缩放图像

时间:2015-02-05 00:00:36

标签: android image url android-asynctask

我使用以下方法从给定的URL获取图像。

protected Bitmap doInBackground(String... urls) {
    String urlDisplay = urls[0];
    Bitmap scaledImage = null;
    try {
        InputStream in = new java.net.URL(urlDisplay).openStream();
        scaledImage = Bitmap.createScaledBitmap(BitmapFactory.decodeStream(in), 380, 250, false);
    } catch (Exception e) {
        Log.e("Error", e.getMessage());
        e.printStackTrace();
    }
    return scaledImage;
}

无论如何都可以获得缩放图像而无需先下载完整尺寸的图像?这会大大增加加载时间。

2 个答案:

答案 0 :(得分:1)

遗憾的是,无法完成服务器端操作,在下载之前,无法对其进行扩展。但是,如果您仍希望在连续刷新时保存加载时间,则可能可以继续保存在共享首选项中接收的位图。这样,如果图像已存储在共享首选项中,则无需再次下载并对其应用缩放。

注意:如果您下载的图片在一段时间后发生变化,您可以在每个" n"之后进行检查。 (比如说7天)并用这个替换现有的存储图像。

注意:虽然有很多答案可以告诉您如何将图像位图存储在共享首选项/本地存储中,但如果您需要该信息/代码片段,请告诉我。

答案 1 :(得分:0)

如果不首先下载,则无法对远程图像执行位图操作。因此,除非您从中获取图像的服务器支持不同的图像大小,或者在服务器端调整大小,否则无法执行您想要执行的操作。