当前位置: 首页 > 知识库问答 >
问题:

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

郑正文
2023-03-14

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

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

  • 在“发送”按钮上单击:图库的意图

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

有没有办法让图像检索更顺畅、更快?

共有1个答案

霍建章
2023-03-14

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

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

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

第二种方法是将覆盖(x,y)中心裁剪()一起使用。这是一种裁剪技术,可以缩放图像,使其填充要求的边界,然后裁剪额外的边界。

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);

 类似资料:
  • 我正在开发一个基于Firebase的聊天演示应用程序的Android应用程序。我面临的问题是,当我想传输图像时,我不知道如何处理这种情况。发送图像时,我在Base64中编码,并将其作为字符串发送。那么这里对图像的解码过程又会是怎样的呢?

  • 问题内容: 在我的主页上,我有一个用户列表,我想选择并打开一个频道与其中一个聊天。 我在想是否最好使用id并控制对诸如USERID1-USERID2之类的频道的访问。 但是,当然,用户2也可以打开相同的频道,因此我想找到更易于控制的内容。 请,如果您想帮助我,请使用firebase网址/数组在JavaScript中给我一个示例。 谢谢! 问题答案: 处理此类1:1聊天室的常用方法是根据用户ID生成

  • 问题内容: Java是我选择的编程语言之一。尽管将应用程序分发给最终用户,但我总是遇到问题。 为用户提供JAR并不总是像我想要的那样友好,并且使用Java WebStart要求我维护Web服务器。 分发Java应用程序的最佳方法是什么?如果Java应用程序需要在用户计算机上安装工件,该怎么办?有没有好的Java安装/打包系统? 问题答案: 有多种解决方案,取决于你的发行要求。 只是用一个jar。这

  • 所以Firebase具有离线功能。 因此,每当我发送任何文本消息时,只要我单击“发送”,它就会显示在我的设备上。它就像一个符咒。 我的问题是,当我尝试发送图像时,情况不一样。即使我在线,图像也会首先上传到Firebase存储。然后图像url将被存储到firebase数据库中。在那之后,它被展示给我看。这需要时间,具体取决于文件大小。我一发送图像并在后台上传,是否就可以在设备上显示图像? 我有一个适

  • 我尝试使用mvp开发一对一的聊天应用程序,当应用程序第一次运行时,聊天工作正常,消息发送给用户。问题是,当我尝试注册另一个帐户并尝试发送消息时,firebase创建了两个不同的聊天室,但我无法获得消息,因为第二个用户没有检测到聊天室已经创建并创建了另一个聊天室,请帮助我?这是我试图发送消息的代码: 最终字符串room_type_1=chat.getSenderUID()+“_”+chat.getR

  • 问题内容: 当前,我们的Java应用程序使用制表符分隔的* .cfg文件中包含的值。我们需要更改此应用程序,以使其现在使用XML文件。 为了从此文件中读取值,使用的最佳/最简单的库是什么? 问题答案: 当然,根据您的需要有很多好的解决方案。如果只是配置,则应查看Jakarta commons- configuration 和commons- digester 。 您总是可以使用获取文档的标准JDK