web-dev-qa-db-ja.com

Android:プログラムでURLから画像ビューに画像を設定する方法

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にロードできません。何もロードされていません。

何かアイデアはありますか?

5
Terance

それを行う最も簡単な方法は、ピカソやグライドのようなものを使用することです。

Picasso.with(getContext()).load(imgUrl).fit().into(contentImageView);

gradleにpicassoライブラリを追加できます:compile 'com.squareup.picasso:picasso:2.5.2'

10
Mohammad Zarei

この関数を試して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;

    }
}
3
Ratilal Chopda

効率的なパフォーマンスのために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

2
Keerthivasan

ライブラリなしでそれを実行したい場合:

  1. メモリにビットマップ画像がある場合

    setImageBitmap(Bitmap bm)//このImageViewのコンテンツとしてビットマップを設定します。

  2. ドローアブルフォルダに画像がある場合

    setImageResource(int resId)//このImageViewのコンテンツとしてドローアブルを設定します。

参照: https://developer.Android.com/reference/Android/widget/ImageView.html

1
Yogesh