📜  Android 中的 ObjectAnimator 示例(1)

📅  最后修改于: 2023-12-03 14:39:09.464000             🧑  作者: Mango

Android 中的 ObjectAnimator 示例

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 轴顺利地移动。