2017-03-03 66 views
0

所以我使用畢加索圖書館把網絡圖像放到我的ImageView中。不過,我對谷歌圖表,當其在Chrome中打開的是一個圖像這一個文件,但沒有擴展名:將谷歌圖表圖像下載到ImageView

https://chart.googleapis.com/chart?cht=qr&chs=150x150&chl=LG-80294959&choe=UTF-8

我也試着追加& png格式的URL和畢加索仍然失敗下載圖像。但是,一旦我將URL更改爲靜態(例如https://puu.sh/us6td/3dda131f46.png),圖像就會顯示得很好。

我該如何繞過這個問題?任何幫助將不勝感激。

回答

0

確保您在AndroidManifest.xml中設置了以下權限來訪問互聯網。

<uses-permission android:name="android.permission.INTERNET" /> 

在MainActivity.java:

public void onClick(View v) { 

// show The Image in a ImageView 
new DownloadImageTask((ImageView) findViewById(R.id.imageView1)) 
      .execute("https://chart.googleapis.com/chart?cht=qr&chs=150x150&chl=LG-80294959&choe=UTF-8"); 

} 

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { 
    ImageView bmImage; 

    public DownloadImageTask(ImageView bmImage) { 
     this.bmImage = bmImage; 
    } 

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

    protected void onPostExecute(Bitmap result) { 
     bmImage.setImageBitmap(result); 
    } 
} 

享受吧!

+0

謝謝!這解決了Google Charts的問題。 相同格式的另一個URL似乎沒有工作,但是:https://hackforums.net/captcha.php?imagehash=de186516263983d99bdc789691675ae7 它拋出「了java.lang.RuntimeException:執行doInBackground時出錯()「由於InputStream的」java.lang.NullPointerException「。任何想法爲什麼? –