如何在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(请参见上文),并强烈推荐它。 :)