为什么ImageView不移动?

时间:2019-08-25 21:38:02

标签: android

我正在制作一个手机游戏,并且我想在按左右按钮时使ImageView水平移动。

我已经尝试过setX()和And Anim Animator,但是它仍然不会移动

左右按钮。

        btnRight.setOnClickListener(new View.OnClickListener() {
            public void onClick(View right) {
                x++;
                ObjectAnimator d = ObjectAnimator.ofFloat(first, "translationX", x);
                d.setDuration(2000);
                d.start();

            }
        });
        btnLeft.setOnClickListener(new View.OnClickListener() {
            public void onClick(View left) {
                x--;
                ObjectAnimator animation = ObjectAnimator.ofFloat(first, "translationX", x);
                animation.setDuration(2000);
                animation.start();

            }
        });

Imageview XML

    <ImageView
        android:id="@+id/first"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="160dp"
        android:layout_marginEnd="166dp"
        android:layout_marginRight="168dp"
        android:layout_marginBottom="471dp"
        android:adjustViewBounds="true"
        android:background="#00FFFFFF"
        android:contentDescription="@android:string/untitled"
        android:scaleType="fitXY"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.963"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="1.0"
        app:srcCompat="@android:color/background_light"
        tools:srcCompat="@android:color/background_light" />

当我使用setX时,如果同时按下两个按钮,该对象将始终向左移动,并停留在该位置。当我使用ObjectAnimator时,它就呆在那里。

1 个答案:

答案 0 :(得分:2)

ObjectAnimator应该没问题。
我尝试了您的代码,它可以工作,但是平移距离很小,我必须多次单击按钮才能看到明显的移动。
您可以将x++更改为x += 10甚至是x += 50来检查它是否确实有效。