首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Android 實現按鈕點擊切換幀動畫(三態循環)

     編輯:程式設計綜合問答

需求

Button 默認圖 A,點擊後循環播放圖 B→C→D,再次點擊恢復圖 A。

實現方案:AnimationDrawable

  1. 在 res/drawable/btn_anim.xml 定義幂動畫:
    <animation-list xmlns:android="..." android:oneshot="false">
      <item android:drawable="@drawable/img_b" android:duration="200"/>
      <item android:drawable="@drawable/img_c" android:duration="200"/>
      <item android:drawable="@drawable/img_d" android:duration="200"/>
    </animation-list>
  2. 佈局中 Button 設置 `android:background="@drawable/btn_anim"`。
  3. 代碼控制:
    AnimationDrawable anim = (AnimationDrawable) btn.getBackground();
    btn.setOnClickListener(v -> {
        if (anim.isRunning()) {
            anim.stop();
            btn.setBackgroundResource(R.drawable.img_a); // 恢復默認
        } else {
            btn.setBackgroundResource(R.drawable.btn_anim);
            anim = (AnimationDrawable) btn.getBackground();
            anim.start();
        }
    });

替代方案

  • 用 `Handler` + `postDelayed` 手動切換 `setBackgroundResource`,靈活控制幀率與邏輯。
  • 使用 `Lottie` 或 `VectorDrawable` 實現更複雜動畫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved