打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
实现 Frame Animation
package xiaohang.zhimeng;

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 AnimationDrawable frameAnimation = null;
Context mContext   = null;
//定义一个Drawable对象
Drawable mBitAnimation  = 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());
//此方法返回一个可绘制的对象与特定的资源ID相关联 
mBitAnimation = getResources().getDrawable(id);
/*为动画添加一帧*/
//参数mBitAnimation是该帧的图片
//参数500是该帧显示的时间,按毫秒计算
frameAnimation.addFrame(mBitAnimation, 500);
}
/*上边用到了Resources的getIdentifier方法 方法返回一个资源的唯一标识符,如果没有这个资源就返回0
* 0不是有效的标识符,在说说这个方法几个参数的含义
* 第一个 就是我们的资源名称了。
* 第二个 就是我们要去哪里找我们的资源 我们的图片在drawable 下 所以为drawable
* 第三个 我们用了Context的getPackageName返回应用程序的包名
* */
//设置播放模式是否循环播放,false表示循环,true表示不循环
frameAnimation.setOneShot(false);
//设置本类将要显示的这个动画
this.setBackgroundDrawable( frameAnimation );
}
@Override
protected 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;
}
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
8.4.1 Android动画合集之帧动画
Android波纹扩散效果之仿支付宝咻一咻功能实现波纹扩散特效
Android 自定义控件
Android开发网上的一些重要知识点
Android控件Gallery3D效果
使用Android自带Gallery组件实现CoverFlow,源码+解析
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服