gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 00:04:32 25 4
gpt4 key购买 nike

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

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

  • 点击“发送”按钮:图库的 Intent >> 将图像上传到 Firebase 存储 >> 将图像 URL 存储在 Firebase 数据库的消息子项中。
  • 在适配器中,当消息的子项中的类型设置为“图像”时,我使用 Picasso 及其离线功能将图像检索到 ImageView。

问题是高质量图像超过 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);

关于android - 在 Firebase/Android 聊天应用程序中发送和接收大图像文件的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49245638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com