首页 > 代码库 > Android 基础的三种动画 帧动画、补间动画、属性动画。

Android 基础的三种动画 帧动画、补间动画、属性动画。

帧动画 drawable   animation

通过xml文件声明一个帧动画

①在res目录下创建一个drawable目录 把用到的图片资源放到这个目录下 并且创建一个xml文件

根元素  animation-list可以设置一个属性 oneshot如果设置为true 动画只执行一次 执行之后停在最后一帧

animation-list 子元素item   

<?xml version="1.0" encoding="utf-8"?>
2.  <animation-list xmlns:android="http://schemas.android.com/apk/res/android"
3.      android:oneshot="true" >     //踹人的动画
4.       <item android:drawable="@drawable/girl_1" android:duration="200" />
5.      <item android:drawable="@drawable/girl_2" android:duration="200" />
6.      <item android:drawable="@drawable/girl_3" android:duration="200" />
7.       <item android:drawable="@drawable/girl_4" android:duration="400" />
8.      <item android:drawable="@drawable/girl_5" android:duration="400" />
9.      <item android:drawable="@drawable/girl_6" android:duration="400" />
10.     <item android:drawable="@drawable/girl_4" android:duration="400" />
11.    <item android:drawable="@drawable/girl_5" android:duration="400" />
12.    <item android:drawable="@drawable/girl_6" android:duration="400" />
13.     <item android:drawable="@drawable/girl_4" android:duration="400" />
14.    <item android:drawable="@drawable/girl_5" android:duration="400" />
15.    <item android:drawable="@drawable/girl_6" android:duration="400" />
16.     <item android:drawable="@drawable/girl_7" android:duration="400" />
17.    <item android:drawable="@drawable/girl_8" android:duration="400" />
18.    <item android:drawable="@drawable/girl_9" android:duration="200" />
19.     <item android:drawable="@drawable/girl_10" android:duration="200" />
20.    <item android:drawable="@drawable/girl_11" android:duration="200" />
21.</animation-list>

item 中drawable属性 对应当前帧使用的图片资源  duration指定每一帧播放的时长

②在界面的布局文件中 通过ImageView的background属性加载drawableanimation

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2.      xmlns:tools="http://schemas.android.com/tools"
3.      android:layout_width="match_parent"
4.      android:layout_height="match_parent"
5.      android:paddingBottom="@dimen/activity_vertical_margin"
6.      android:paddingLeft="@dimen/activity_horizontal_margin"
7.      android:paddingRight="@dimen/activity_horizontal_margin"
8.      android:paddingTop="@dimen/activity_vertical_margin"
9.      tools:context=".MainActivity" >
10. 
11.    <ImageView
12.        android:id="@+id/iv_animation"
13.        android:layout_width="wrap_content"
14.        android:layout_height="wrap_content"
15.        android:background="@drawable/drawableanimation" />
16.</RelativeLayout>

③在java代码中 找到imageview 通过getbackground找到Drawableanimation 资源 然后开始动画

public class MainActivity extends Activity {
2.   
3.      @Override
4.      protected void onCreate(Bundle savedInstanceState) {
5.          super.onCreate(savedInstanceState);
6.          setContentView(R.layout.activity_main);
7.          ImageView iv_image = (ImageView) findViewById(R.id.iv_animation);
8.          //找到imageview的背景资源 这个背景就是一个帧动画 强转成帧动画对应的AnimationDrawable对象
9.         AnimationDrawable anim =  (AnimationDrawable) iv_image.getBackground();
10.       //开启动画
11.       anim.start();
12.    }

 

Android 基础的三种动画 帧动画、补间动画、属性动画。