如果在Android客户端上发送同一个远程图像的多个Web请求,会发生什么情况

问题描述:

假设相同的图像将显示在视图中的不同位置。在这种情况下下载图像的最佳策略是什么?如果在Android客户端上发送同一个远程图像的多个Web请求,会发生什么情况

  1. 我应该下载只是一个图像,并将其保存为高速缓存或
  2. 我应该只设置了所有ImageViews的src相同的URL,并留下了Android系统来处理呢?或
  3. 如果您善意地建议更好的方法?

我会建议使用Glide library这样的事情。我不想“推动”图书馆。但是Glide是Android开发环境中的一个已建立的库。许多Android开发人员(和大公司)都在使用它。随你。 Glide将构建缓存。另外你可以自定义它。有关Glide缓存的更多信息,请参阅here

也许你认为使用图书馆“只是下载图像并在ImageView上显示它”是“过度技术”。但是,您是否曾经下载并在ImageViewList/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); 
}