我有一个来自我的其他API的图片网址。现在我想在加载活动时将其设置为imageview。下面是我如何从其余的api获取bean,然后从中获取URL。
Message message=new Message();
String imageUrl=message.getImageUrl();
我从我的数据库中获取Message对象,并且图像url包含在该Message对象中。
然后我使用Url对象获取该图片网址。
URL url = null;
try {
url = new URL(imageUrl);
Bitmap bmp = BitmapFactory.decodeStream(url.openConnection().getInputStream());
contentImageView.setImageBitmap(bmp);
} catch (Exception e) {
e.printStackTrace();
}
我使用上面的代码将图像加载到contentImageView
的图像视图对象。
但是我仍然无法将此图像加载到imageview,没有任何内容被加载。
有什么想法吗?
答案 0 :(得分:10)
最简单的方法是使用像Picasso或Glide这样的东西:
Picasso.with(getContext()).load(imgUrl).fit().into(contentImageView);
你可以在你的gradle中添加picasso库:
compile 'com.squareup.picasso:picasso:2.5.2'
答案 1 :(得分:3)
请尝试使用此功能获取bitmap
public Bitmap getBitmapfromUrl(String imageUrl)
{
try
{
URL url = new URL(imageUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream input = connection.getInputStream();
Bitmap bitmap = BitmapFactory.decodeStream(input);
return bitmap;
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
答案 2 :(得分:2)
使用Glide或picasa库提高效率
Dependices
compile 'com.github.bumptech.glide:glide:3.7.0'
示例代码
Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.skipMemoryCache(true)
.into(imageview);
参考文献: Glide官方文档https://github.com/bumptech/glide
答案 3 :(得分:1)
如果你想在没有任何库的情况下这样做:
如果内存中有位图图像
setImageBitmap(Bitmap bm)//将位图设置为此ImageView的内容。
如果您有可绘制文件夹中的图像
setImageResource(int resId)//将drawable设置为此ImageView的内容。
参考:https://developer.android.com/reference/android/widget/ImageView.html