首页 > 解决方案 > (Android Studio,Kotlin)Imageview 中的图像在单击时不显示

问题描述

大家好,我在单击时在 ImageView 中显示图像时遇到问题,我创建了一个功能来在单击图像时显示我已经在示例游戏的每个图像视图中添加了.xml中的android:onClick="drops",我使用具有 9 个图像视图的网格布局(3x3)

在此处输入图像描述

这是函数的代码。

    fun drops(view: View){

    val imageView = ImageView(this)

    var player = 0;
    if (player == 0){
        imageView.setImageResource(R.drawable.yellow)
        imageView.animate().alpha(1f).rotation(360f).setDuration(600)
        player == 1
    }else {
        imageView.setImageResource(R.drawable.red)
        imageView.animate().alpha(1f).rotation(360f).setDuration(600)
        player == 0
    }

}

标签: androidkotlin

解决方案


我不确定这个函数包含在哪个类中,我想它在 aFragmentActivity. 正如您所说,您正在将图像视图与dropsxml 布局中的方法绑定。

这行可能是问题所在:

val imageView = ImageView(this)

从您的问题中,我们无法看到该方法定义在哪个类中,因此表达式this可以是任何东西。您可能会ImageView从整个 Activity 或 Fragment 对象中实例化一个,并且无法以您希望的方式工作。所以我建议把这一行改写成这样:

val imageView = view as ImageView

该函数drops接收一个View参数,即用户单击的图像视图 - 但View类没有调用方法setImageResource,因此您需要将其转换为所需的子类型(ImageView 是 View 的子类)。这应该可以完成这项工作。


推荐阅读