将图像设置为来自URL的ImageView
将图像设置为来自URL的ImageView
我有一个ImageView和一个指向互联网上图片的链接。我像这样将这张图片设置给ImageView:\n
public ImageView iv; iv = (ImageView) findViewById(R.id.imageView); String img = "https://www.google.com/images/srpr/logo11w.png"; iv.setImageDrawable(Drawable.createFromPath(img));
\n我想要做的是从互联网上下载一张图片到我的安卓应用程序,并将其应用到一个ImageView上。我希望尽可能简单。\n帮了我:\n
String img_url= //图片的url URL url=new URL(img_url); Bitmap bmp; bmp=BitmapFactory.decodeStream(url.openConnection().getInputStream()); ImageView iv=(ImageView)findviewById(R.id.imageview); iv.setImageBitmap(bmp);
从上述内容中可以看出,问题的出现原因是想要从URL加载图片到ImageView,但不清楚如何实现。解决方法是使用第三方库来实现这个功能,作者推荐使用Universal Image Loader库。
Universal Image Loader库具有以下特点:
- 多线程加载图片
- 可以对ImageLoader的配置进行广泛调整(线程执行器、下载器、解码器、内存和磁盘缓存、显示图片选项等)
- 可以将图片缓存在内存和/或设备的文件系统(或SD卡)上
- 可以“监听”加载过程
- 可以使用单独的选项自定义每个显示图片的调用
- 支持小部件
- 可以在加载、错误等情况下显示自定义图片
使用Universal Image Loader库的步骤如下:
1. 首先,在应用程序的一次地方设置选项:
DisplayImageOptions defaultOptions = new DisplayImageOptions.Builder() .cacheInMemory(true) .cacheOnDisc(true) .build(); ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(getApplicationContext()) .defaultDisplayImageOptions(defaultOptions) .build(); ImageLoader.getInstance().init(config);
2. 然后,在代码的任何地方使用以下代码来加载图片:
ImageView iv = (ImageView) findViewById(R.id.imageView); String str = "http://google.com/img.jpg"; ImageLoader.getInstance().displayImage(str, iv);
当然,还有其他许多可以使用的库,如picasso、Smart Image View、Url Image View等。根据需要进行代码的一些修改,这些库也可以实现类似的功能。
这个问题的原因是,开发者想要从URL加载图片并将其设置到ImageView中,但是他们不知道如何做到这一点。他们可能试图使用文件路径名创建Drawable,但是这种方法并不能直接从URL加载图片。
解决方法是,开发者需要使用其他方法来从URL加载图片并将其设置到ImageView中。他们可以使用第三方库如Picasso或Glide来简化这个过程。以下是解决方法的示例代码:
// 使用Picasso库加载图片并设置到ImageView中 String imageUrl = "http://example.com/image.jpg"; ImageView imageView = findViewById(R.id.imageView); Picasso.get().load(imageUrl).into(imageView);
// 使用Glide库加载图片并设置到ImageView中 String imageUrl = "http://example.com/image.jpg"; ImageView imageView = findViewById(R.id.imageView); Glide.with(this).load(imageUrl).into(imageView);
这样,开发者就可以从URL加载图片并将其设置到ImageView中了。他们只需要替换`imageUrl`为实际的图片URL,并将`imageView`替换为他们的ImageView对象。这些库会自动处理图片的下载和缓存,并将其设置到ImageView中。
总结起来,开发者遇到这个问题是因为他们尝试使用错误的方法从URL加载图片并设置到ImageView中。解决方法是使用第三方库如Picasso或Glide来简化这个过程,并提供了示例代码来演示如何使用这些库来实现目标。
问题出现的原因:
在Android中,如果我们想要从URL加载图片并显示在ImageView上,我们需要使用第三方库来实现。在这个例子中,作者推荐了Picasso这个库来完成这个任务。
解决方法:
我们可以使用Picasso库来设置ImageView的图片。首先,我们需要在项目中引入Picasso库。然后,我们可以使用以下代码来实现从URL加载图片并显示在ImageView上:
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
这个代码片段中,Picasso.with(context)指定了上下文,load("http://i.imgur.com/DvpvklR.png")指定了要加载的图片的URL,into(imageView)指定了要将图片显示在哪个ImageView上。
以上就是使用Picasso库来将图片设置到ImageView的方式。希望对你有所帮助!