帧动画

原理:播放频率大于20帧/s,多张图片就可以形成流畅的画面。

即顺序播放事先做好的图像,跟放胶片电影类似。开发步骤:

  (1)把准备好的图片放进项目res/ drawable下。

  (2)在项目的res目录下创建文件夹anim,然后在anim文件夹下面定义动 画XML文件,文件名称可以自定义。当然也可以采用编码方式定义 动画效果(使用AnimationDrawable类)。

  (3)为View控件绑定动画效果。调用代表动画的AnimationDrawable的 start()方法开始动画。


Drawable动画说明

可以使用xml或者java方式实现帧动画。但推荐使用xml,具体如下:

<animation-list> 必须是根节点,包含一个或者多个<item>元素,属性有:

  • android:oneshot true代表只执行一次,false循环执行。
  • <item> 类似一帧的动画资源。

<item> animation-list的子项,包含属性如下:

  • android:drawable 一个frame的Drawable资源。
  • android:duration 一个frame显示多长时间。

import android.app.Activity;
import android.graphics.drawable.AnimationDrawable;
import android.os.Bundle;
import android.widget.ImageView;
public class MainActivity extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_main);
  
       ImageView rocketImage = (ImageView) findViewById(R.id.iv);
       //给imageview设置背景
       rocketImage.setBackgroundResource(R.drawable.anim);
       //获取imageview的背景资源图片
       AnimationDrawable rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
       rocketAnimation.start();
 }
}

 drawable下新建anim.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">  <!-- 循环播放--> 
    <item android:drawable="@drawable/girl_1" android:duration="200" />     <!-- duration代表 持续时间-->   

    <item android:drawable="@drawable/girl_2" android:duration="200" />
    <item android:drawable="@drawable/girl_3" android:duration="200" />
    <item android:drawable="@drawable/girl_4" android:duration="200" />
    <item android:drawable="@drawable/girl_5" android:duration="200" />
    <item android:drawable="@drawable/girl_6" android:duration="200" />
    <item android:drawable="@drawable/girl_7" android:duration="200" />
    <item android:drawable="@drawable/girl_8" android:duration="200" />
    <item android:drawable="@drawable/girl_7" android:duration="200" />
    <item android:drawable="@drawable/girl_8" android:duration="200" />
    <item android:drawable="@drawable/girl_7" android:duration="200" />
    <item android:drawable="@drawable/girl_8" android:duration="200" />
    <item android:drawable="@drawable/girl_9" android:duration="200" />
    <item android:drawable="@drawable/girl_10" android:duration="200" />
    <item android:drawable="@drawable/girl_11" android:duration="200" />
</animation-list>

注在此目录下需要放入上面命名为girl_1到girl_11的图片  ,不易过大,容易发生OOM

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
    <ImageView
        android:id="@+id/iv"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

 

posted on 2017-02-20 21:17  LoaderMan  阅读(207)  评论(0编辑  收藏  举报

导航