android帧动画
16lz
2021-12-04
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"?>
更多相关文章
- Android中自定义Dialog常用的两种方式
- Android(安卓)自定义充电动画
- android AlertDialog自定义全屏显示
- Android属性动画 Property animation
- ProgressBar播放动画
- Android编译系统详解(三)
- Android(安卓)自定义标题栏Title Bar
- Android(安卓)自定义APP开机启动,并打开其它App
- Android(安卓)attrs文件(自定义)属性详解