我正在制作一个手机游戏,并且我想在按左右按钮时使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时,它就呆在那里。
答案 0 :(得分:2)
ObjectAnimator应该没问题。
我尝试了您的代码,它可以工作,但是平移距离很小,我必须多次单击按钮才能看到明显的移动。
您可以将x++
更改为x += 10
甚至是x += 50
来检查它是否确实有效。