如果在Android客户端上发送同一个远程图像的多个Web请求,会发生什么情况
问题描述:
假设相同的图像将显示在视图中的不同位置。在这种情况下下载图像的最佳策略是什么?如果在Android客户端上发送同一个远程图像的多个Web请求,会发生什么情况
- 我应该下载只是一个图像,并将其保存为高速缓存或
- 我应该只设置了所有ImageViews的src相同的URL,并留下了Android系统来处理呢?或
- 如果您善意地建议更好的方法?
答
我会建议使用Glide library这样的事情。我不想“推动”图书馆。但是Glide是Android开发环境中的一个已建立的库。许多Android开发人员(和大公司)都在使用它。随你。 Glide将构建缓存。另外你可以自定义它。有关Glide缓存的更多信息,请参阅here。
也许你认为使用图书馆“只是下载图像并在ImageView
上显示它”是“过度技术”。但是,您是否曾经下载并在ImageView
的List
/RecyclerView
中显示图像? 相信我。手动操作是一件很痛苦的事情。 Glide也会帮助你处理这些事情。
下面是一个简单的例子(从他们Readme
被盗)从给定的URL下载图像,并把它变成一个ImageView
:
@Override public void onCreate(Bundle savedInstanceState) {
...
ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
GlideApp.with(this).load("http://i.imgur.com/qFeBmOF.png").into(imageView);
}