android帧卡通片

android帧动画import android.content.Contextimport android.graphics.Canvasimport android.graphics.

android帧动画

import android.content.Context;import android.graphics.Canvas;import android.graphics.drawable.AnimationDrawable;import android.graphics.drawable.Drawable;import android.view.KeyEvent;import android.view.View;public class GameView extends View{/* 定义AnimationDrawable动画 */private AnimationDrawableframeAnimation= null;ContextmContext= null;/* 定义一个Drawable对象 */DrawablemBitAnimation= null;public GameView(Context context){super(context);mContext = context;/* 实例化AnimationDrawable对象 */frameAnimation = new AnimationDrawable();/* 装载资源 *///这里用一个循环了装载所有名字类似的资源//如“a1.......15.png”的图片//这个方法用处非常大for (int i = 1; i <= 15; i++){int id = getResources().getIdentifier("a" + i, "drawable", mContext.getPackageName());mBitAnimation = getResources().getDrawable(id);/* 为动画添加一帧 *///参数mBitAnimation是该帧的图片//参数500是该帧显示的时间,按毫秒计算frameAnimation.addFrame(mBitAnimation, 500);}/* 设置播放模式是否循环false表示循环而true表示不循环 */frameAnimation.setOneShot( false );  /* 设置本类将要显示这个动画 */this.setBackgroundDrawable(frameAnimation);}public void onDraw(Canvas canvas){super.onDraw(canvas);}public boolean onKeyUp(int keyCode, KeyEvent event){switch ( keyCode ){case KeyEvent.KEYCODE_DPAD_UP:/* 开始播放动画 */frameAnimation.start();break;}return true;}}

?2、另一种通过xml文件定义

public class GameView extends View{/* 定义AnimationDrawable动画对象 */private AnimationDrawableframeAnimation= null;ContextmContext= null;public GameView(Context context){super(context);mContext = context;/* 定义一个ImageView用来显示动画 */ImageView img = new ImageView(mContext);/* 装载动画布局文件 */img.setBackgroundResource(R.anim.frameanimation);/* 构建动画 */frameAnimation = (AnimationDrawable) img.getBackground();/* 设置是否循环 */frameAnimation.setOneShot( false );  /* 设置该类显示的动画 */this.setBackgroundDrawable(frameAnimation);}public void onDraw(Canvas canvas){super.onDraw(canvas);}public boolean onKeyUp(int keyCode, KeyEvent event){switch ( keyCode ){case KeyEvent.KEYCODE_DPAD_UP:/* 开始播放动画 */frameAnimation.start();break;}return true;}}

?

<?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/a1" android:duration="500" />    <item android:drawable="@drawable/a2" android:duration="500" />    <item android:drawable="@drawable/a3" android:duration="500" />    <item android:drawable="@drawable/a4" android:duration="500" />    <item android:drawable="@drawable/a5" android:duration="500" />    <item android:drawable="@drawable/a6" android:duration="500" />    <item android:drawable="@drawable/a7" android:duration="500" />    <item android:drawable="@drawable/a8" android:duration="500" />    <item android:drawable="@drawable/a9" android:duration="500" />    <item android:drawable="@drawable/a10" android:duration="500" />    <item android:drawable="@drawable/a11" android:duration="500" />    <item android:drawable="@drawable/a12" android:duration="500" />    <item android:drawable="@drawable/a13" android:duration="500" />    <item android:drawable="@drawable/a14" android:duration="500" />    <item android:drawable="@drawable/a15" android:duration="500" />      </animation-list>

?