RestAPIからの画像URLがあります。次に、アクティビティの読み込み時にイメージビューに設定します。以下は、残りのAPIからBeanを取得し、そこからURLを取得する方法です。
Message message=new Message();
String imageUrl=message.getImageUrl();
データベースからメッセージオブジェクトを取得し、画像のURLがそのメッセージオブジェクトに含まれています。
次に、Urlオブジェクトを使用してその画像の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オブジェクトに画像をロードしました。
しかし、それでもこの画像をimageviewにロードできません。何もロードされていません。
何かアイデアはありますか?
それを行う最も簡単な方法は、ピカソやグライドのようなものを使用することです。
Picasso.with(getContext()).load(imgUrl).fit().into(contentImageView);
gradleにpicassoライブラリを追加できます:compile 'com.squareup.picasso:picasso:2.5.2'
この関数を試して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;
}
}
効率的なパフォーマンスのためにGlideまたはpicasaライブラリを使用する
依存関係
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
ライブラリなしでそれを実行したい場合:
メモリにビットマップ画像がある場合
setImageBitmap(Bitmap bm)//このImageViewのコンテンツとしてビットマップを設定します。
ドローアブルフォルダに画像がある場合
setImageResource(int resId)//このImageViewのコンテンツとしてドローアブルを設定します。
参照: https://developer.Android.com/reference/Android/widget/ImageView.html