android开发分享安卓案例:利用帧动画实现游戏特效

文章目录一、运行效果二、涉及知识点三、实现步骤1、创建安卓应用【GameSpecialEffect】2、将逐帧动画素材拷贝到drawable目录里3、主布局资源文件acitivity_main.xml4、字符串资源文件strings.xml5、主界面类MainActivity(1)声明变量(2)通过资源标识获得控件实例(3)初始化图像标识数组(4)创建消息处理器(5)创建开始按钮单击事件处理方法(6)创建停止按钮单击事件处理方法6、启动应用,查看效果上一个安卓案例【动态显示时间】,利用线程(Thread)

文章目录

  • 一、动画概念
  • 二、逐帧动画
  • 三、运行效果
  • 四、涉及知识点
  • 五、游戏特效案例实现思路
  • 六、实现步骤
    • 1、创建安卓应用【GameSpecialEffect】
    • 2、将逐帧动画素材拷贝到drawable目录里
    • 3、主布局资源文件acitivity_main.xml
    • 4、字符串资源文件strings.xml
    • 5、主界面类MainActivity
      • (1)声明变量
      • (2)通过资源标识获得控件实例
      • (3)初始化图像标识数组
      • (4)创建消息处理器
      • (5)创建开始按钮单击事件处理方法
      • (6)创建停止按钮单击事件处理方法
    • 6、启动应用,查看效果

一、动画概念

  • 动画的概念不同于一般意义上的动画片,动画是一种综合艺术,它是集合了绘画、漫画、电影、数字媒体、摄影、音乐、文学等众多艺术门类于一身的艺术表现形式。最早发源于19世纪上半叶的英国,兴盛于美国,中国动画起源于20世纪20年代。1892年10月28日埃米尔·雷诺首次在巴黎著名的葛莱凡蜡像馆向观众放映光学影戏,标志着动画的正式诞生,同时埃米尔·雷诺也被誉为“动画之父”。
  • 动画的英文有很多表述,如animation、cartoon、animated cartoon、cameracature。其中较正式的 “Animation” 一词源自于拉丁文字根anima,意思为“灵魂”,动词animate是“赋予生命”的意思,引申为使某物活起来的意思。所以动画可以定义为使用绘画的手法,创造生命运动的艺术。

二、逐帧动画

  • 逐帧动画(Frame-by-Frame Animation)是一种常见的动画形式,其原理是在“连续关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画。 因为逐帧动画的帧序列内容不一样,不但给制作增加了负担,而且最终输出的文件量也很大,但它的优势也很明显,逐帧动画具有非常大的灵活性,几乎可以表现任何想表现的内容,而它类似与电影的播放模式,很适合于表演细腻的动画。例如人物或动物急剧转身、 头发及衣服的飘动、走路、说话以及精致的3D效果等等。
  • 逐帧动画有多种实现方式:利用动画资源文件实现、利用Thread和Handler来实现、利用Timer和Handler来实现。上一个安卓案例【动态显示时间】,利用线程(Thread)和消息处理器(Handler)实现帧动画,本次案例,我们学习如何利用定时器(Timer)和消息处理器(Handler)实现帧动画。

三、运行效果

安卓案例:利用帧动画实现游戏特效

四、涉及知识点

  1. 线性布局(LinearLayout)
  2. 图像视图(ImageView)
  3. 按钮(Button)
  4. 定时器(Timer)
  5. 定时器任务(TimerTask)
  6. 消息处理器(Handler)

五、游戏特效案例实现思路

  • 逐帧动画,其实就要定时切换图片,定时操作可以利用定时器(Timer)来完成,切换图片就需要事先将所有图片的资源标识保存到一个数组里(这也是一个难点,尤其当图片数量比较大时),通过改变图片资源标识数组的当前索引达到切换图片的目的。但是,从安卓4.0版本以后,出于安全考虑,子线程不能直接更新主界面元素。怎么办呢?这就需要一种能沟通主线程和子线程的机制,而消息处理器Handler正是这样一种机制,实现不同线程间的通信。在子线程里,定时更新图片当前索引,然后通过handler的sendEmptyMessage方法将更新后的图片当前索引发送到主线程,最后,在主线程里,通过handler的handleMessage方法获取子线程发送过来的图片当前索引,利用这个索引获取当前图片的资源标识,作为参数传给图像控件的setImageRource方法,就达到更新图片的目的。

六、实现步骤

1、创建安卓应用【GameSpecialEffect】

安卓案例:利用帧动画实现游戏特效
安卓案例:利用帧动画实现游戏特效

2、将逐帧动画素材拷贝到drawable目录里

安卓案例:利用帧动画实现游戏特效
图片素材下载链接:https://pan.baidu.com/s/1FvyJ2_dB7F4inGftnIZ5mQ 提取码:ti7v

安卓案例:利用帧动画实现游戏特效

3、主布局资源文件acitivity_main.xml

安卓案例:利用帧动画实现游戏特效

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"     xmlns:tools="https://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:background="#000000"     android:gravity="center"     android:orientation="vertical"     tools:context="net.hw.game_special_effect.MainActivity">      <ImageView         android:id="@+id/ivBomb"         android:layout_width="250dp"         android:layout_height="250dp"         android:src="@drawable/img1" />      <LinearLayout         android:layout_width="match_parent"         android:layout_height="wrap_content"         android:gravity="center"         android:orientation="horizontal">          <Button             android:id="@+id/btnStart"             android:layout_width="100dp"             android:layout_height="wrap_content"             android:layout_marginRight="30dp"             android:background="#cccccc"             android:onClick="doStart"             android:text="@string/start"             android:textSize="25sp" />          <Button             android:id="@+id/btnStop"             android:layout_width="100dp"             android:layout_height="wrap_content"             android:background="#cccccc"             android:onClick="doStop"             android:text="@string/stop"             android:textSize="25sp" />     </LinearLayout> </LinearLayout> 

4、字符串资源文件strings.xml

安卓案例:利用帧动画实现游戏特效

<resources>     <string name="app_name">帧动画:游戏特效</string>     <string name="start">开始</string>     <string name="stop">停止</string> </resources> 

5、主界面类MainActivity

安卓案例:利用帧动画实现游戏特效

(1)声明变量

安卓案例:利用帧动画实现游戏特效

(2)通过资源标识获得控件实例

安卓案例:利用帧动画实现游戏特效

(3)初始化图像标识数组

安卓案例:利用帧动画实现游戏特效

(4)创建消息处理器

  • 创建消息处理器,处理从定时器任务里发送过来的消息,更新主界面元素
    安卓案例:利用帧动画实现游戏特效

(5)创建开始按钮单击事件处理方法

安卓案例:利用帧动画实现游戏特效

(6)创建停止按钮单击事件处理方法

安卓案例:利用帧动画实现游戏特效

6、启动应用,查看效果

安卓案例:利用帧动画实现游戏特效

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/addevelopment/892595.html

(0)
上一篇 2021年10月20日
下一篇 2021年10月20日

精彩推荐