📅  最后修改于: 2023-12-03 14:39:09.464000             🧑  作者: Mango
Android 中的 ObjectAnimator 是一个用于控制视图动画的类,它可以在一定时间内修改一个对象的属性值。本文将为您介绍 ObjectAnimator 的使用方法,并提供一个示例代码。
要使用 ObjectAnimator,您需要实例化一个 ObjectAnimator 对象,并将要修改的属性和属性值作为参数传入。例如,下面是一个将要移动的 ImageView 对象,我们将使用 ObjectAnimator 来控制它在 x 轴上的移动:
ImageView imgView = findViewById(R.id.imgView);
ObjectAnimator animator = ObjectAnimator.ofFloat(imgView, "translationX", 0f, 200f);
animator.setDuration(1000);
animator.start();
上述代码中,我们通过调用 ObjectAnimator.ofFloat() 方法来创建一个 ObjectAnimator 对象,并传递 ImageView 对象、要修改的属性 "translationX"(即 x 轴上移动的距离),以及属性的起始值 0f 和终止值 200f。接着,我们设置了动画的持续时间为 1000 毫秒,并调用了 animator.start() 来启动动画。
下面是一个带有按钮的布局,通过点击按钮来控制 ImageView 在 x 轴上的移动:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center">
<ImageView
android:id="@+id/imgView"
android:layout_width="80dp"
android:layout_height="80dp"
android:src="@drawable/ic_launcher"/>
<Button
android:id="@+id/btnStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/imgView"
android:text="开始动画"/>
</RelativeLayout>
接下来,我们需要在对应的 Activity 中实现按钮的点击事件,并使用 ObjectAnimator 控制 ImageView 的移动:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btnStart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnStart = findViewById(R.id.btnStart);
btnStart.setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnStart:
startAnimation();
break;
}
}
private void startAnimation() {
ImageView imgView = findViewById(R.id.imgView);
ObjectAnimator animator = ObjectAnimator.ofFloat(imgView, "translationX", 0f, 200f);
animator.setDuration(1000);
animator.start();
}
}
在该 Activity 中,我们在 onCreate() 方法中为按钮添加点击事件监听器,并在 onClick() 方法中根据按钮的 ID 调用 startAnimation() 方法。该方法使用 ObjectAnimator 控制 ImageView 在 x 轴上移动 200 个像素的距离,并在 1000 毫秒内完成。
运行该程序,在点击按钮后,您将会看到 ImageView 沿着 x 轴顺利地移动。