如何在网格布局内的ImageView中添加onClick方法?

时间:2019-05-03 11:48:19

标签: java android

我正在创建一个类似井字游戏的游戏,其中包含一些圆形的球,当用户点击要部署的房间时,这些球会掉落。我已将这些图像添加到网格布局中,但是当用户点击它们时,我无法运行专用方法。我已将方法分配给imageview的onclick属性,但是未执行Java代码。

编辑:单击网格布局并记录它时,我尝试记录一些信息。因此得出的结论是,网格布局阻止了将点击注册到imageview。

这是我的Java代码:

public void dropIn(View view) {
    ImageView counter = (ImageView) view;
    counter.setTranslationY(1000f);
    counter.setImageResource(R.drawable.yellow);
    counter.animate().translationYBy(1000f).setDuration(300);
}

这是图像视图的XML代码:

<ImageView
        android:id="@+id/imageView5"
        android:layout_width="90dp"
        android:layout_height="90dp"
        android:layout_margin="10dp"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="20dp"
        android:onClick="dropIn"
        app:layout_column="1"
        app:layout_row="1" />

这是表格的XML代码:

<android.support.v7.widget.GridLayout
        android:layout_width="match_parent"
        android:layout_height="360dp"
        android:layout_marginStart="5dp"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="185dp"
        android:layout_marginEnd="6dp"
        android:layout_marginRight="6dp"
        android:layout_marginBottom="186dp"
        android:background="@drawable/board"
        app:columnCount="3"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.0"
        app:rowCount="3">

1 个答案:

答案 0 :(得分:0)

您可以尝试以编程方式进行操作,而不是通过XML视图分配方法。

首先,您需要创建一个新的ImageView,然后使用findViewById()方法呈现该视图。然后,为onClickListener分配“ dropIn”逻辑:

ImageView counter = findViewById(R.id.imageView5);
counter.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        counter.setTranslationY(1000f);
        counter.setImageResource(R.drawable.yellow);
        counter.animate().translationYBy(1000f).setDuration(300);
    }
 });