从firebase加载图像很慢

时间:2017-05-01 16:11:11

标签: android xml firebase firebase-storage

每当我登录我的应用时。图像缓慢加载。加载通常需要很长时间。 我在我的应用中使用Glide作为图片加载库。

 Glide.with(photoImageView.getContext())
          .load(message.getPhotoUrl())
          .into(photoImageView);

以上代码用于将图像加载到我的UI上的ImageView,因为您可以看到完整图像需要花费大量时间加载。

enter image description here

为了从Firebase更快地加载图像,可以采取哪些措施 存储?

5 个答案:

答案 0 :(得分:1)

考虑修改磁盘缓存类型。

.skipMemoryCache(false)专门告诉Glide不要跳过内存缓存,从而加快加载速度。另外,你可以用.diskCacheStrategy()方法改变Glide的磁盘缓存行为。

  • DiskCacheStrategy.NONE无法缓存任何内容

    DiskCacheStrategy.SOURCE仅缓存原始的全分辨率    图片。在我们上面的示例中,将是1000x1000像素的一个

    DiskCacheStrategy.RESULT在缩小后仅缓存最终图像    分辨率(和可能的转换)(默认行为)

    DiskCacheStrategy.ALL缓存图像的所有版本

答案 1 :(得分:1)

您也可以尝试使用内置的FIREBASE Image loader

,而不是从url加载
StorageReference storageReference = //make a Reference to your Image
Glide.with(context)
       .using(new FirebaseImageLoader())
       .load(storageReference)
       .into(ImageView);

答案 2 :(得分:0)

您可以在应用程序以Glide.preload()开头或使用内置Glide缓存

时预加载图片

答案 3 :(得分:0)

借助Krish(在StackOverflow上)。他建议我改变这段代码

Glide.with(photoImageView.getContext())
  .load(message.getPhotoUrl())
  .into(photoImageView);

此代码。它与以下代码完美配合。

Glide.with(getContext())
  .load(message.getPhotoUrl())
  .asBitmap()
  .centerCrop()
  .into(new SimpleTarget < Bitmap > () {
    @Override
    public void onResourceReady(Bitmap resource, GlideAnimation << ? super Bitmap > glideAnimation) {
      photoImageView.setImageBitmap(resource);
    }
  });

答案 4 :(得分:0)

你也可以考虑使用Picasso,恕我直言,它的加载速度比Glide快。