【问题标题】:Retrieve gif image from firebase and returns the same gif image, how to fix this?从firebase检索gif图像并返回相同的gif图像,如何解决这个问题?
【发布时间】:2021-08-18 04:18:59
【问题描述】:

我的应用有问题, 我目前正在使用 ViewPager 构建一个带有水平滑块的信息页面。我有 2 个布局 XML,它与 ViewPager 的 1 个活动结合在一起,这意味着每个布局都显示不同的 gif。所有 gif 图像均从 firebase 检索。问题是所有布局都显示相同的 gif。

这里是我的 onCreate 函数:

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_practice)

    val gifImage1 = FirebaseStorage.getInstance().reference.child("gif/step1.gif")
    val gifImage2 = FirebaseStorage.getInstance().reference.child("gif/step2_left.gif")
    val localFile = File.createTempFile("tempGif", "gif")

    gifImage1.getFile(localFile).addOnSuccessListener {
        val gifFromPath = GifDrawable(localFile.absolutePath)
        img.setImageDrawable(gifFromPath)
    }.addOnFailureListener {
        Toast.makeText(this, "Failed to retrieve the image", Toast.LENGTH_SHORT).show()
    }

    gifImage2.getFile(localFile).addOnSuccessListener {
        val gif2FromPath = GifDrawable(localFile.absolutePath)
        img2.setImageDrawable(gif2FromPath)
    }.addOnFailureListener {
        Toast.makeText(this, "Failed to retrieve the image", Toast.LENGTH_SHORT).show()
    }
    
    init()
    dataSet()
    interaction()
}

在我的示例布局 XML 下方:

下面第一个布局 XML 的屏幕截图:

以下第二个布局 XML 的屏幕截图:

上面的两个布局应该有不同的 gif 图像。 任何帮助和解决方案,我都非常感谢。

【问题讨论】:

    标签: android firebase kotlin firebase-storage


    【解决方案1】:

    您对两张图片使用相同的localFile

    val localFile = File.createTempFile("tempGif", "gif")
    

    您应该将它们下载到单独的文件中,而不是使用同一个文件。

    【讨论】:

    • 谢谢,但有没有最好的方法来编写这段代码?避免重复写代码
    • 是的。这称为循环。
    猜你喜欢
    • 2010-09-18
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    • 2023-04-04
    • 2018-01-31
    • 2011-10-06
    • 2012-02-04
    相关资源
    最近更新 更多