从URL将Image设置为ImageView

时间:2014-02-25 08:41:29

标签: android imageview

我有Imageview和互联网上图片的链接。我把这张照片设置为像这样的ImageView,

public ImageView iv;
iv = (ImageView) findViewById(R.id.imageView);
String img = "https://www.google.com/images/srpr/logo11w.png";
iv.setImageDrawable(Drawable.createFromPath(img));

我想要做的是从互联网上下载图片到我的Android应用程序并将其应用到ImageView。我希望尽可能简单。

帮助我

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

3 个答案:

答案 0 :(得分:14)

有很多lib可以做到这一点,我最喜欢的是Picasso

这是一个用法示例:

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

试一试:)

答案 1 :(得分:2)

This method从文件路径名创建一个Drawable。 Check这个答案。

答案 2 :(得分:1)

有很多库可以这样做,我建议使用一个库,因为它们有许多额外的选项可供使用。

选择Universal Image Loader

功能

  • 多线程图像加载
  • 可以广泛调整ImageLoader的配置(线程执行器,下载器,解码器,内存和光盘缓存,显示图像选项等)
  • 在内存和/或设备的文件系统(或SD卡)上进行图像缓存的可能性
  • “倾听”加载过程的可能性
  • 可以使用分开的选项自定义每个显示图像调用 小部件支持
  • 可以在加载,错误等时显示自定义图像

您必须使用以下方式设置选项:

DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder()
            .cacheInMemory(true)
            .cacheOnDisc(true)
            .build();
ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext())
            .defaultDisplayImageOptions(defaultOptions)
            .build();
ImageLoader.getInstance().init(config);

然后,您可以在代码中的任何位置使用它:

ImageView iv = (ImageView) findViewById(R.id.imageView);
String str = "http://google.com/img.jpg";

ImageLoader.getInstance().displayImage(str, iv);

当然,您可以使用许多其他库,例如picassoSmart Image ViewUrl Image View以及许多其他库。