【发布时间】: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