每当我登录我的应用时。图像缓慢加载。加载通常需要很长时间。
我在我的应用中使用Glide
作为图片加载库。
Glide.with(photoImageView.getContext())
.load(message.getPhotoUrl())
.into(photoImageView);
以上代码用于将图像加载到我的UI上的ImageView
,因为您可以看到完整图像需要花费大量时间加载。
为了从Firebase更快地加载图像,可以采取哪些措施 存储?
答案 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快。