📜  Android在Kotlin中旋转动画(1)

📅  最后修改于: 2023-12-03 15:29:22.855000             🧑  作者: Mango

Android 中使用 Kotlin 实现旋转动画

在 Android 中,我们可以使用 Animation 来实现动画效果。其中比较常用的是旋转动画。在 Kotlin 中,相较于 Java 语言,我们可以更加简洁地实现旋转动画效果。

实现方法

首先,我们需要在 res/anim 目录下创建一个旋转动画的 XML 文件。例如,我们可以创建一个名为 rotate_anim.xml 的文件,其中实现了一个从初始角度为 0 到结束角度为 360 的旋转动画,时长为 1000ms

<rotate
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="1000"/>

在 Kotlin 中,我们可以使用 AnimationUtils 中的 loadAnimation() 方法加载旋转动画并为视图附加动画效果。例如,我们可以在 Activity 中创建一个按下按钮后启动旋转动画的示例:

import android.os.Bundle
import android.view.animation.AnimationUtils
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // 加载旋转动画
        val rotateAnim = AnimationUtils.loadAnimation(this, R.anim.rotate_anim)

        // 为按钮附加旋转动画效果
        button.setOnClickListener {
            it.startAnimation(rotateAnim)
        }
    }
}

在以上示例中,通过 AnimationUtils.loadAnimation() 方法加载旋转动画,然后通过 startAnimation() 方法为按钮视图附加旋转动画效果。

其他实现方式

在 Kotlin 中,我们还可以使用 Android 扩展库中的 ViewPropertyAnimator 类来实现视图动画效果。下面是一个示例,通过 rotation() 方法实现了一个从初始角度为 0 到结束角度为 360 的旋转动画,时长为 1000ms

import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // 为按钮附加旋转动画效果
        button.setOnClickListener {
            it.animate()
                .rotation(360f)
                .setDuration(1000)
                .start()
        }
    }
}
结论

以上就是在 Kotlin 中实现旋转动画的两种方式。无论是使用 Animation 类还是 ViewPropertyAnimator 类,都可以实现灵活、简洁的动画效果,使应用界面更加生动、有趣。