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

使用firebase cloud时未加载图像[重复]

吕钧
2023-03-14

因此,我正在开发一个小型聊天应用程序,可以加载存储在Firebase Cloud中的图像。

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RC_SIGN_IN) {
        // Code for text message
    }
        else if(requestCode==RC_PHOTO_PICKER && resultCode==RESULT_OK){
            Uri selectedImageUri=data.getData();
            StorageReference photoRef=mChatPhotoReference.child(selectedImageUri.getLastPathSegment());
            photoRef.putFile(selectedImageUri).addOnSuccessListener(this, new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    String downloadUrl=taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();
                    FriendlyMessage friendlyMessage=new FriendlyMessage(null,mUsername,downloadUrl);
                    mDatabaseReference.push().setValue(friendlyMessage);
                    Log.e("WWWWWWWWWWWWWWWWWWWWWWW",downloadUrl);

                }
            });
    }

}
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.item_message, parent, false);
    }

    ImageView photoImageView = (ImageView) convertView.findViewById(R.id.photoImageView);
    TextView messageTextView = (TextView) convertView.findViewById(R.id.messageTextView);
    TextView authorTextView = (TextView) convertView.findViewById(R.id.nameTextView);

    FriendlyMessage message = getItem(position); 
    boolean isPhoto = message.getPhotoUrl() != null;
    if (isPhoto) {
        Log.e("VVVVVVVVVVVVVVVVVVVV",message.getPhotoUrl());
        messageTextView.setVisibility(View.GONE);
        photoImageView.setVisibility(View.VISIBLE);
        Glide.with(photoImageView.getContext())
                .load(message.getPhotoUrl())
                .into(photoImageView);
    } else {
          Load text..
    }
    authorTextView.setText(message.getName());

    return convertView;
}

Glidle:4.11.0 Firebase-Storage:19.1.0

共有1个答案

杨研
2023-03-14

尝试使用RequestOptions应该如下所示

RequestOptions options = new RequestOptions()
                    .centerCrop()
                    .placeholder(R.mipmap.ic_launcher_round)
                    .error(R.mipmap.ic_launcher_round);



 Glide.with(this)
    .load(image_url)
    .apply(options)
    .into(imageView);

如果您没有获得url,您将显示错误图像,在本例中为ic_lanucher_round

 类似资料:
  • 问题内容: 问题描述: 我正在创建一个滚动的带有缩略图的文章列表,该列表由我的SQLite数据库填充。通常,它运行缓慢,但速度较慢: 图像加载非常缓慢…我想使用“ 通用图像加载器 ”将图像缓存在设备上,如果您已经查看过图像(或者至少接近该图像,那会使它们看起来只是滚动到视图中) )。但是- 当您向上/向下拖动时,没有任何图像,然后在3-5秒后,图像开始弹出(就像重新下载它们一样) 我正在动态更改缩

  • 我尝试在桌面应用程序中加载图像,但我不知道图像的路径 错误: 线程“AWT-EventQueue-0”java.lang.NullPointerException在javax.swing.ImageIcon处出现异常。(未知源)在Ventanas.Success处。(success.java:30)

  • 问题内容: 我遵守规则 它将URL 重定向到。页面成功重定向,但问题未加载, CSS,js文件位于和下 一种解决方案是使用 绝对路径 (例如/ CSS或/ js而不是CSS /,/ js,但这似乎不是一个可靠的解决方案,因为我们必须在所有文件上进行更改, 是否有其他基于规则的解决方案,这些解决方案独立于编辑所有PHP文件并让我们使用“相对路径”? 问题答案: 不要偷懒,将资源中的相对URI更改为根

  • 问题内容: 当有人通过我的应用程序工作时,我正在尝试在后台加载图像。我写的逻辑是这样的: 但是,当我尝试启动这样的新线程时: 但是在程序中我得到错误Looper.prepare必须被调用,随后是逻辑looper.quit() 但是,当我添加Looper.prepare()时,似乎中断了程序,并且没有要调用的looper.quit()。 我是否正确创建任务? 编辑: 这是我尝试运行时的错误日志: 我

  • 我试了所有的办法,但似乎都不奏效。据我说,图像的路径是正确的。(虽然我附上了一张图片供参考)。这就是我得到的错误- 这是**pubspec.yaml*- 名称:foodfast描述:一个新的颤振项目。 Publish_To:'none' 版本:1.0.0+1 环境:SDK:“>=2.7.0<3.0.0” 依赖项:flutter:SDK:flutter 弹出屏幕:^1.3.5 cupertino_i

  • 无法将获取错误的图像显示为未找到,但我已为其提供了完整路径。我不知道我错在哪里。