如何在ImageView中使用URL引用的图像?


当前回答

这段代码经过测试,它是完全工作的。

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());

其他回答

你也可以使用LoadingImageView视图从url加载图片:

http://blog.blundellapps.com/imageview-with-loading-spinner/

一旦你从链接中添加了类文件,你就可以实例化一个url图像视图:

在xml:

<com.blundell.tut.LoaderImageView
  android:id="@+id/loaderImageView"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  image="http://developer.android.com/images/dialog_buttons.png"
 />

在代码:

final LoaderImageView image = new LoaderImageView(this, "http://developer.android.com/images/dialog_buttons.png");

并更新它使用:

image.setImageDrawable("http://java.sogeti.nl/JavaBlog/wp-content/uploads/2009/04/android_icon_256.png");

1. Picasso允许在应用程序中轻松加载图像——通常只需一行代码!

使用它:

implementation 'com.squareup.picasso:picasso:(insert latest version)'

只有一行代码!

Picasso.get().load("http://i.imgur.com/DvpvklR.png").into(imageView);

2. 一个用于Android的图像加载和缓存库,专注于平滑滚动

使用它:

repositories {
   mavenCentral() 
   google()
}

dependencies {
   implementation 'com.github.bumptech.glide:glide:4.11.0'
   annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
}
// For a simple view:
Glide.with(this).load("http://i.imgur.com/DvpvklR.png").into(imageView);

3.fresco是一个在Android应用程序上显示图像的强大系统。Fresco负责图像加载和显示,所以你不必这样做。

从壁画开始

imageView.setImageBitmap(BitmapFactory.decodeStream(imageUrl.openStream()));//try/catch IOException and MalformedURLException outside

在我看来,最适合完成这项任务的现代图书馆是毕加索广场图书馆。它允许通过URL加载图像到ImageView,只需一行代码:

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

这是一个迟到的回复,正如上面所建议的AsyncTask将会和谷歌一点后,我发现了一个解决这个问题的方法。

Drawable Drawable = Drawable. createfromstream ((InputStream) new URL(" URL ").getContent(), "src");

imageView.setImageDrawable(可拉的);

这是完整的功能:

public void loadMapPreview () {
    //start a background thread for networking
    new Thread(new Runnable() {
        public void run(){
            try {
                //download the drawable
                final Drawable drawable = Drawable.createFromStream((InputStream) new URL("url").getContent(), "src");
                //edit the view in the UI thread
                imageView.post(new Runnable() {
                    public void run() {
                        imageView.setImageDrawable(drawable);
                    }
                });
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }).start();
}

不要忘记在你的AndroidManifest.xml中添加以下权限来访问互联网。

< uses-permission android: name = " android.permission。互联网" / >

我自己也试过,还没有遇到任何问题。