You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio中通过Kotlin实现Vector动画在MainActivity展示

在Android Studio中通过Kotlin实现Vector动画展示

我在Android Studio中拥有若干Vector绘图XML文件,需要在MainActivity中通过Kotlin实现其动画展示。主动画文件为hello_android.xml,预期效果为Android机器人挥手切换至静止、再从静止恢复挥手的动画,其余配套Vector文件可从技术文章获取。

以下是hello_android.xml的代码:

<?xml version="1.0" encoding="utf-8"?>
<animated-selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/enabled"
        android:drawable="@drawable/hello_android_enabled"
        android:state_enabled="true"/>

    <item
        android:id="@+id/disabled"
        android:drawable="@drawable/hello_android_disabled"/>

    <transition
        android:drawable="@drawable/hello_android_waving"
        android:fromId="@id/enabled"
        android:toId="@id/disabled"/>

    <transition
        android:drawable="@drawable/hello_android_stay_calm"
        android:fromId="@id/disabled"
        android:toId="@id/enabled"/>
</animated-selector>

实现步骤:

  1. 添加布局控件
    在activity_main.xml中添加ImageView,引用上述动画文件:

    <ImageView
        android:id="@+id/animatedAndroid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/hello_android"
        android:clickable="true"/>
    
  2. Kotlin逻辑实现
    在MainActivity.kt中通过切换View的enabled状态触发动画:

    class MainActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
    
            val animatedAndroid = findViewById<ImageView>(R.id.animatedAndroid)
            animatedAndroid.setOnClickListener {
                // 切换enabled状态,触发对应的过渡动画
                it.isEnabled = !it.isEnabled
            }
        }
    }
    

原理说明:

animated-selector会根据View的状态(这里是enabled)自动切换对应的Drawable:

  • 当View处于enabled=true时,显示hello_android_enabled
  • 当View切换到enabled=false时,播放hello_android_waving过渡动画,最终显示hello_android_disabled
  • 当再次切换回enabled=true时,播放hello_android_stay_calm过渡动画,回到初始状态

内容的提问来源于stack exchange,提问作者Eblo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:17:05