如何在ImageView
使用URL引用的ImageView
? java
一種簡單而乾淨的方法是使用開源庫Prime 。 android
若是您是經過單擊按鈕加載圖像的,則上面接受的答案很好,可是,若是您在新活動中進行圖像加載,則會凍結UI一兩秒鐘。 環顧四周,我發現一個簡單的asynctask消除了這個問題。 git
要使用asynctask,請在活動結束時添加此類: github
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); } }
並使用如下方法從onCreate()方法進行調用: 網絡
new DownloadImageTask((ImageView) findViewById(R.id.imageView1)) .execute(MY_URL_STRING);
結果是快速加載的活動和一個圖像視圖,該圖像視圖稍後根據用戶的網絡速度顯示一秒鐘。 async
String img_url= //url of the image URL url=new URL(img_url); Bitmap bmp; bmp=BitmapFactory.decodeStream(url.openConnection().getInputStream()); ImageView iv=(ImageView)findviewById(R.id.imageview); iv.setImageBitmap(bmp);
此代碼已通過測試,能夠徹底正常工做。 oop
URL req = new URL( "http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png" ); Bitmap mIcon_val = BitmapFactory.decodeStream(req.openConnection() .getInputStream());
這裏有不少很好的信息...我最近發現了一個名爲SmartImageView的類,到目前爲止彷佛工做得很是好。 很是容易合併和使用。 測試
http://loopj.com/android-smart-image-view/ this
https://github.com/loopj/android-smart-image-view url
更新 :我最終寫了一篇有關此的博客文章 ,所以請查看它以獲取有關使用SmartImageView的幫助。
第二次更新 :我如今老是爲此使用Picasso(請參見上文),並強烈推薦它。 :)