2015-08-27 56 views
-1

从下面两行中,实际下载发生在哪一行?如果可能的话,请解释从流下载图像

InputStream input = new java.net.URL(imageURL).openStream(); 
       bitmap = BitmapFactory.decodeStream(input); 
+0

它发生在第一行。 –

回答

0

此:

InputStream input = new java.net.URL(imageURL).openStream(); 

创建到URL的连接。结果是一个流,可用于获取URL的内容。

此:

bitmap = BitmapFactory.decodeStream(input); 

使用上述流中读取URL的内容,并使用它来创建位图,所以这是“下载”发生。请记住,这并不意味着图像实际上保存在内部存储器或SD卡上。这只是在记忆中。

+0

所以你说它的第二行,下载发生。它与我的问题的评论矛盾 –

+0

我很确定没有数据传输在第一行完成。一个流只是打开,没有数据被提取。 –

+0

正在开放一个昂贵的过程,事情是我只想下载一些条件。 –

0

试试这个获取和保存。

你也可以用伊斯利通用图像加载库或毕加索 https://github.com/nostra13/Android-Universal-Image-Loader http://square.github.io/picasso/

网址URL =新的URL工作( “....你的网站......”);

InputStream input = null; 
FileOutputStream output = null; 

try { 
    String outputName = "thumbnail.jpg"; 

    input = url.openConnection().getInputStream(); 
    output = c.openFileOutput(outputName, Context.MODE_PRIVATE); 

    int read; 
    byte[] data = new byte[1024]; 
    while ((read = input.read(data)) != -1) 
     output.write(data, 0, read); 

    return outputName; 

} finally { 
    if (output != null) 
     output.close(); 
    if (input != null) 
     input.close(); 
} 
+0

我没问过如何下载图片或下载图片的方法 –