欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Android基础 ---- 动画

程序员文章站 2022-03-01 20:52:33
...

一、动画类型(3种)

  • Drawable Animation(帧动画)
  • View Animation(View动画,又叫补间动画)
  • Property Animation(属性动画)


二、Drawable Animation

  • 什么是Drawable Animation?
    • Drawable animation lets you load a series of Drawable resources one after another to create an animation.
      根据API可以知道,帧动画实际上就是加载一系列的图片资源
  • Drawable Animation可以用来做什么?
    • 可以用来做GIF格式的动图
  • Drawable Animation怎么实现
    • 将所需要的图片资源拷贝到 res/drawable 文件夹下
    • 在 res/drawable 文件夹下创建一个xml文件,命名自己随意命就行,在这里我就命名为myAnim.xml。其节点使用 <animation-list>
      <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
          android:oneshot="true">
          <item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
          <item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
          <item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
      </animation-list>
      
      • 其中 android:oneshot 表示是否循环,true表示循环播放,false表示不循环播放
      • 每个 <item> 中存放的都是一张图片
        • android:drawable 用于加载图片资源
        • android:duration 表示播放的时长
    • 在XML布局中创建一个ImageView控件
    • 在与其对应的java文件中找到该控件
      ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
      
    • 调用 setBackgroundResource() 方法,为其设置背景资源
      rocketImage.setBackgroundResource(R.drawable.myAnim);
      
    • 调用 getBackground() 方法,获取一个 AnimationDrawable 对象
      AnimationDrawable rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
      
    • 调用 start() 方法开启动画
      rocketAnimation.start();