Android Frame动画实例
来源:互联网 发布:网狐棋牌游戏源码 编辑:程序博客网 时间:2024/05/16 00:32
具体的上一章已经介绍,直接上代码:
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());
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;
}
}
Xml实现:
res/anim/frameanimation.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/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>
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.drawable.AnimationDrawable;
import android.view.KeyEvent;
import android.view.View;
import android.widget.ImageView;
public class GameView extends View
{
/* 定义AnimationDrawable动画对象 */
private AnimationDrawable frameAnimation = null;
Context mContext = 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;
}
}
- Android Frame动画实例
- Android中Tween动画和Frame动画实例
- Android中Tween动画和Frame动画实例
- Android动画之逐帧动画(Frame Animation)实例详解
- Android动画之逐帧动画(Frame Animation)实例详解
- Android:动画:Frame动画
- [Android实例] [附实例]Android 动画效果二 Frame Animation 动画专题研究 二 [复制链接]
- android tween、frame动画
- Android --- Frame动画示例
- Android动画--Frame Animation
- android Frame动画
- Android---Frame动画
- Android Frame动画
- android-Frame动画
- Android[动画] Frame Animation
- android动画-Frame Animation
- android动画-Frame Animation
- Android 逐帧(Frame)动画
- 最近用到的informix sql,关于时间函数
- 深入jQuery Mobile的事件
- 常用的 SQL语句 汇总
- 申请环境标志认证应具备的条件
- 插入块参照后,将块内对象坐标换算为其当前dwg中的坐标
- Android Frame动画实例
- 解决《windows 能连接cmcc 但是浏览器打不开登入界面》问题
- snprintf
- 40多个关于人脸检测/识别的API、库和软件
- Qt编程—去掉标题栏和设置窗口透明用法
- c#中处理数据库中字段值的Null问题
- 多项式时间算法
- android平台下使用点九PNG技术
- _stdcall,_cdecl区别