在 Firebase/Android 聊天应用程序中发送和接收大图像文件的最佳方法是什么

What is the best approach to send and receive the big image files in a Firebase/Android chat app

我正在开发一个使用 Firebase 实时数据库和存储的聊天应用程序。

目前我使用这种方法发送和接收图像:

问题是高质量图像超过 1 MB。一旦它们被发送,应用程序在滚动聊天时变得非常慢,然后一些图像从 ImageView 中消失。

有什么办法可以让图片找回更顺畅更快?

如果您使用的是 Glide,那么您可以调整图像的大小和比例。假设您正在使用 Glide 4.x,请使用以下选项之一:

首先是使用 override(x, y) 方法将图像调整为特定尺寸:

GlideApp  
    .with(context)
    .load(UsageExampleListViewAdapter.eatFoodyImages[0])
    .override(600, 200)
    .into(imageViewResize);

其次是将 override(x, y)centerCrop() 一起使用。这是一种裁剪技术,可以缩放图像以填充请求的边界,然后裁剪多余的部分。

GlideApp  
    .with(context)
    .load(UsageExampleListViewAdapter.eatFoodyImages[0])
    .override(600, 200)
    .centerCrop()
    .into(imageViewResizeCenterCrop);

第三种方法是使用 fitCenter(),这是一种缩放图像的裁剪技术,使两个尺寸都等于或小于 ImageView 的请求范围。图像将完整显示,但可能不会填满整个 ImageView

GlideApp  
    .with(context)
    .load(UsageExampleListViewAdapter.eatFoodyImages[0])
    .override(600, 200)
    .fitCenter() 
    .into(imageViewResizeFitCenter);