如何在ImageView
使用URL引用的ImageView
?
#1楼
一种简单而干净的方法是使用开源库Prime 。
#2楼
如果您是通过单击按钮加载图像的,则上面接受的答案很好,但是,如果您在新活动中进行图像加载,则会冻结UI一两秒钟。 环顾四周,我发现一个简单的asynctask消除了这个问题。
要使用asynctask,请在活动结束时添加此类:
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);
结果是快速加载的活动和一个图像视图,该图像视图稍后根据用户的网络速度显示一秒钟。
#3楼
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);
#4楼
此代码已经过测试,可以完全正常工作。
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());
#5楼
这里有很多很好的信息...我最近发现了一个名为SmartImageView的类,到目前为止似乎工作得非常好。 非常容易合并和使用。
http://loopj.com/android-smart-image-view/
https://github.com/loopj/android-smart-image-view
更新 :我最终写了一篇有关此的博客文章 ,因此请查看它以获取有关使用SmartImageView的帮助。
第二次更新 :我现在总是为此使用Picasso(请参见上文),并强烈推荐它。 :)
来源:oschina
链接:https://my.oschina.net/u/3797416/blog/3157877