Android ObjectAnimator停止
ObjectAnimator是Android提供的一个动画类,用于实现对象的属性动画效果。在某些情况下,我们可能需要在动画执行过程中停止它。本文将介绍如何停止Android中的ObjectAnimator动画,并提供示例代码供参考。
ObjectAnimator简介
ObjectAnimator是Android动画框架中的一部分,用于对对象的属性进行动画操作。它可以对任何对象的属性进行动画操作,包括视图的属性(如宽度、高度、透明度等)和自定义对象的属性。ObjectAnimator的核心是ValueAnimator,它可以通过设置动画的起始值和结束值,以及动画的持续时间和插值器,来控制属性的动画效果。
停止ObjectAnimator动画
要停止ObjectAnimator动画,可以使用cancel()方法。当调用cancel()方法时,动画会立即停止,并回到动画开始时的状态。下面是一个示例代码:
// 创建一个ObjectAnimator对象
val animator = ObjectAnimator.ofFloat(view, "translationX", 0f, 100f)
animator.duration = 1000
// 启动动画
animator.start()
// 停止动画
animator.cancel()
在上面的示例中,我们创建了一个将视图view在X轴上进行平移动画的ObjectAnimator对象。动画的起始位置是0,结束位置是100,持续时间为1000毫秒。调用start()方法启动动画后,我们立即调用cancel()方法停止动画。
除了cancel()方法,还可以使用end()方法来停止ObjectAnimator动画。不同于cancel()方法会立即停止动画并回到起始状态,end()方法会使动画执行完毕之后停止,并保持在结束状态。示例代码如下:
// 创建一个ObjectAnimator对象
val animator = ObjectAnimator.ofFloat(view, "translationX", 0f, 100f)
animator.duration = 1000
// 启动动画
animator.start()
// 停止动画
animator.end()
在上面的示例中,我们创建了一个将视图view在X轴上进行平移动画的ObjectAnimator对象。调用start()方法启动动画后,我们立即调用end()方法停止动画。
下面是一个完整的示例,演示如何使用ObjectAnimator停止动画:
import android.animation.ObjectAnimator
import android.os.Bundle
import android.widget.Button
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
private lateinit var animator: ObjectAnimator
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val button = findViewById<Button>(R.id.button)
button.setOnClickListener {
startAnimation()
private fun startAnimation() {
val view = findViewById<Button>(R.id.button)
animator = ObjectAnimator.ofFloat(view, "translationX", 0f, 100f)
animator.duration = 1000
animator.start()
override fun onStop() {
super.onStop()
animator.cancel()
上面的示例代码中,我们在Activity的onCreate()方法中设置了一个按钮,并为按钮的点击事件添加了一个动画效果。点击按钮时,会启动平移动画。当Activity停止时(例如返回键按下),会调用cancel()方法停止动画。
在Android中,我们可以使用ObjectAnimator类实现各种属性动画效果。为了停止ObjectAnimator动画,可以调用cancel()方法或end()方法。cancel()方法会立即停止动画并回到起始状态,而end()方法会使动画执行完毕之后停止,并保持在结束状态。根据实际需求选择合适的方法来停止动画。