2012-07-14 62 views
2

我已經創建了一個android應用程序,其中圖像從給定url加載。當我直接傳遞url時,圖像正在加載。但是當我在一個字符串變量中傳遞該變量並傳遞該變量時,圖像不會被加載。我的代碼如下。爲什麼圖像不是從android應用程序的url加載?

private Drawable ImageOperations(String url, String saveFilename) { 
     try { 
      String realImageUrl=url+"? email="+Constants.email+"&proc_date="+Constants.proc_date+"&access_key=" 
      +Constants.ACCESS_KEY+"&version=1.00"; 

      String newUrl=realImageUrl.replace("https", "http"); 

      InputStream is = (InputStream) this.fetch(newUrl); 



      Log.e("https,SubString http: ",realImageUrl+","+ a); 
      Drawable d = Drawable.createFromStream(is, "src"); 

      return d; 
     } catch (MalformedURLException e) { 
      return null; 
     } catch (IOException e) { 
      return null; 
     } 
    } 

    public Object fetch(String address) throws MalformedURLException, 
      IOException { 
     URL url = new URL(address); 
     Object content = url.getContent(); 
     return content; 
    } 

此代碼無效。我的新網址是newUrl。當我在我的日誌中打印newUrl並直接給該URL而不是newUrl時,圖像正在加載。

+0

1.請詳細說明,工作的代碼和沒有代碼的代碼(顯示兩者的代碼段)之間的確切**區別是什麼。 2.當你觸發獲取圖像時,logcat會說什麼? – vArDo 2012-07-14 21:41:32

回答

5

我找到了解決方案。我已經更新了fetch(String address)方法。

public Object fetch(String address) throws MalformedURLException, 
      IOException { 
     try{ 
     URL url = new URL(address); 
     URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(), url.getPort(), url.getPath(), url.getQuery(), url.getRef()); 
     url = uri.toURL(); 
     Log.i("Url:", url+""); 
     Object content = url.getContent(); 
     return content; 
     } 
     catch(Exception e) 
     { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
+0

接受此爲答案..投票儀下方的綠色複選標記.. – Ronnie 2012-07-27 06:46:35

相關問題