2015-08-27 55 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

我沒問過如何下載圖片或下載圖片的方法 –