【问题标题】:Error in Loading image from Firebase Firestore using Glide使用 Glide 从 Firebase Firestore 加载图像时出错
【发布时间】:2020-07-06 19:58:03
【问题描述】:

我正在使用 Glide 加载存储在 firebase firestore 中的图像。最初,我在从 Firebase 获取 url 链接的同一活动中加载图像。到目前为止,事情进展顺利。现在我正在尝试在弹出活动中加载此图像(基本上是不同的活动)。该 url 在原始活动中被获取,然后被传递给 popUp 活动。

我检查了传递给新活动的 URL 是否正确,但是没有加载相同的 URL。有人可以帮忙吗。新活动中的代码如下:

val catch = intent.getStringExtra("imgSrc")
popUpText.visibility = View.GONE
if(catch!=null){
                val presImage = PhotoView(this@PopUp)
                val param2: LinearLayout.LayoutParams = LinearLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.WRAP_CONTENT, 1.0F)
                param2.setMargins(0,64,0,0)
                presImage.layoutParams = param2
                presImage.scaleType = ImageView.ScaleType.FIT_CENTER

                   val popProgress = ProgressBar(this@PopUp)
                    popProgress.layoutParams = param2
                    popProgress.setBackgroundColor(Color.parseColor("#beb2bb"))
                    popLayout.addView(popProgress)
                    Glide.with(this@PopUp)
                        .load(Uri.parse(catch))
                        .listener(object: RequestListener<Drawable>{
                            override fun onLoadFailed(
                                e: GlideException?,
                                model: Any?,
                                target: com.bumptech.glide.request.target.Target<Drawable>?,
                                isFirstResource: Boolean
                            ): Boolean {
                                return false
                            }

                            override fun onResourceReady(
                                resource: Drawable?,
                                model: Any?,
                                target: com.bumptech.glide.request.target.Target<Drawable>?,
                                dataSource: DataSource?,
                                isFirstResource: Boolean
                            ): Boolean {
                                popProgress.visibility=View.GONE
                                return false
                            }

                        })
                        .into(presImage)
}

catch 的值是正确的。我已经通过记录相同的内容进行了检查。 我知道我可能犯的错误可能非常微不足道,但花了很多时间无法破译。

【问题讨论】:

  • 您忘记将 presImage(PhotoView) 添加到 param2(ViewGroup) 中了吗?
  • 这有关系吗?在将照片上传到 Firebase 之前,我已经使用相同的代码加载了相机拍摄的照片。那是一个步骤,之前已经完成了
  • 这是一个问题。如果您没有显示完整的代码,那么我不知道您在哪里做错了?所以对于上面的这些代码。当您以编程方式定义视图并且您没有添加到 parentView 时,我发现错误。因此,尽管您加载了图像,但它可以显示在视图中。
  • 哦...我没有正确理解您的问题。是的,它应该在那里,并且在代码的其他部分中。但是由于其余代码中的错误,因此无法访问相同的内容。我已经纠正了。感谢您指出了这一点。请提供您的答案,我会接受的。
  • 那么它是否在 logcat 中显示任何错误消息?还是代码不起作用?

标签: android firebase android-glide


【解决方案1】:

请将您的子视图添加到父视图中以显示在屏幕上。

在上面的那部分代码中。您刚刚将图像加载到 imageView 中,但忘记将 imageView 添加到父视图中。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2018-09-03
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 1970-01-01
    • 2020-08-21
    • 2016-03-30
    • 1970-01-01
    相关资源
    最近更新 更多