2012-05-03 55 views
1

我試圖使用BitmapFactory代碼的URL(http://www.elifeshopping.com/images/stories/virtuemart/product/thumbnail (2).jpg)加載在我的Android應用程序圖像低於:如何解決java.net.MalformedURLException:協議未發現:在9安卓

try { 
      // ImageView i = (ImageView)findViewById(R.id.image); 
      bitmap = BitmapFactory.decodeStream((InputStream) new URL(url) 
        .getContent()); 
      i.setImageBitmap(bitmap); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

這裏我得到

05-03 15:57:13.156: W/System.err(1086): java.net.MalformedURLException: Protocol not found: 9 
05-03 15:57:13.167: W/System.err(1086):  at java.net.URL.<init>(URL.java:273) 
05-03 15:57:13.167: W/System.err(1086): 

at java.net.URL.<init>(URL.java:157). 

請幫助告訴我做錯了什麼。

+0

你應該打開URL連接 – Dharmendra

+0

你從哪裏得到的URL。檢查你的變量url輸入字符串是以http://還是https://打印url字符串中的異常爲例 – user1369689

+0

我在webservice中得到了url nd它開始於http只有 – Shruti

回答

6

我用

productImgUrl = productImgUrl.replaceAll(" ", "%20"); 

我全部換成了通過%20

及其對我的工作空間..

謝謝大家對他們的反應

+0

適合我,我在瀏覽器中檢查它顯示在圖像中,但是當我檢查應用程序時,它顯示格式錯誤的異常,所以我添加了這個小代碼它工作正常,它不顯示錯誤。謝謝@史蒂夫 – Hanuman

2

告訴我在做什麼錯了,請幫忙。

我覺得現在的問題是,你所呼叫的URL構造一個無效的URL字符串。事實上,異常消息意味着URL字符串以「9:」開頭。 (在「協議」成分爲字符的URL的第一個冒號前的順序。)

這沒有很大的意義,如果URL字符串真的是:

的「http:// www.elifeshopping.com/images/stories/virtuemart/product/thumbnail(2).jpg「

所以我推斷它是......其實......別的東西。在打電話給URL構造函數以查明它的真實含義之前打印出來。

(您還應該%-escape在URL路徑中的空格字符...但我懷疑這會修復此特定的異常的化身。)

+0

我didn (這個異常消息意味着URL字符串以「9:」開頭('protocol'組件是第一個冒號字符之前的字符序列))...我需要編輯http嗎? – Shruti

+0

@Shruti - 我在說那個字符串不是你傳遞給URL構造函數的字符串。 –

相關問題