Android帧动画的表示方式

本文详细介绍了在Android应用中如何在res目录下创建anim和drawable文件,并将图片资源组织为动画列表,通过AnimationDrawable与ImageView结合实现动画效果。通过简单的代码示例,演示了如何在主活动类中定义ImageView并设置动画播放逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们先需要在res中创建一个anim和drawable文件,当然在创建xml文件时选择drawable时会自动创建drawable空文件

然后把图片文件依次存入drawable文件中,作为图片的存放区,在anim中无法创建带有Animation-list为根标签的xml文件,所以创建在drawable文件中,然后再复制到anim文件中(不拖过去也是可以的,就是显得图片和文件在一起看着比较不舒服,个人感觉),xml文件名字可以任意



<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false" //设置循环播放,若为true,则只播放一次,默认为false>

    <item
        android:drawable="@drawable/girl_1"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_2"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_3"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_4"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_5"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_6"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_7"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_8"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_9"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_10"
        android:duration="100"/>
    <item
        android:drawable="@drawable/girl_11"
        android:duration="100"/>

</animation-list>


xml文件代码如上


在main_Activity中只需要定义一个ImageView就可以

 

在MainActivity中:

public class MainActivity extends Activity {
 ImageView iv;
 AnimationDrawable rocketAnimation;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv=(ImageView) findViewById(R.id.iv);
       
        iv.setBackgroundResource(R.anim.frame);
        rocketAnimation = (AnimationDrawable) iv.getBackground();
      }

      public boolean onTouchEvent(MotionEvent event) {//设置下,当触摸时即可开始播放
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
          rocketAnimation.start();
          return true;
        }
        return super.onTouchEvent(event);
      }
       
    }

转载于:https://my.oschina.net/sjh1995/blog/631774

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值