在Android Studio中创建项目,名称为“Animation And Multimedia”,然后在该项目中创建一个Module,名称为“Frame-By-Frame Animation”。在该Module中实现本实例,具体步骤如下。

(1)首先在res\drawable目录中添加一个名称为fairy.xml的XML资源文件,然后在该文件中定义组成动画的图片资源,具体代码如下:

01   <?xml version="1.0" encoding="utf-8"?>

02   <animation-list xmlns:android="http://schemas.android.com/apk/res/android">

03       <item android:drawable="@drawable/img001" android:duration="60"/>

04       <item android:drawable="@drawable/img002" android:duration="60"/>

05       <item android:drawable="@drawable/img003" android:duration="60"/>

06       <item android:drawable="@drawable/img004" android:duration="60"/>

07       <item android:drawable="@drawable/img005" android:duration="60"/>

08       <item android:drawable="@drawable/img006" android:duration="60"/>

09   </animation-list>

  (2)修改新建项目的res\layout目录下的布局文件activity_main.xml,将默认添加的布局管理器修改为垂直线性布局管理器,并且在该布局管理器中将默认添加的TextView组件删除,然后为修改后的线性布局管理器设置android:id和android:background属性。将android:background属性设置为步骤(1)中创建的动画资源,修改后的代码如下:

01   <LinearLayout

02       android:id="@+id/linearLayout"

03       xmlns:android="http://schemas.android.com/apk/res/android"

04       xmlns:tools="http://schemas.android.com/tools"

05       android:layout_width="match_parent"

06       android:layout_height="match_parent"

07       android:orientation="vertical"

08       android:background="@drawable/fairy"

09       tools:context="com.mingrisoft.MainActivity">

10   </LinearLayout>

  (3)打开默认创建的MainActivity,在该文件中,首先定义一个私有的布尔型变量flag=true,用于判断开始和停止动画,然后在onCreate()方法中获取垂直线性布局管理器与AnimationDrawable对象,再为布局管理器添加单击事件,最后在onClick()方法中根据flag变量的值来实现动画的开始与停止,具体代码如下:

01   public class MainActivity extends AppCompatActivity {

02       private boolean flag = true;

03       @Override

04       protected void onCreate(Bundle savedInstanceState) {

05           super.onCreate(savedInstanceState);

06           setContentView(R.layout.activity_main);

07           //获取布局管理器

08           LinearLayout linearLayout= (LinearLayout) findViewById(R.id.linearLayout);

09           //获取AnimationDrawable对象

10          final AnimationDrawable anim= (AnimationDrawable) linearLayout.getBackground();

11           //为布局管理器添加单击事件

12           linearLayout.setOnClickListener(new View.OnClickListener() { 

13               @Override

14               public void onClick(View v) {

15                   if(flag){

16                       anim.start();            //开始播放动画

17                       flag=false;

18                   }else {

19                       anim.stop();            //停止播放动画

20                       flag=true;

21                   }

22               }

23           });

24       }

25   }

(4)在AndroidManifest.xml文件的<activity>标记中添加screenOrientation属性,设置其横屏显示,关键代码如下:

android:screenOrientation="landscape"

(5)在工具栏中找到下拉列表框,选择要运行的应用(这里为Frame-By-Frame Animation),再单击右侧的按钮,运行效果如图10.1所示。

图10.1  忐忑的精灵

感谢读者朋友对明日科技的支持,如果您对图书中的讲解及光盘源码有任何问题,可以直接登录http://www.mingrisoft.com上的社区进行发贴,把您的问题详细的说明一下,我们的技术人员会在那里给您回复!

本文摘自明日科技出版的《零基础学Android》,作者:李磊 转载请注明出处!!!

最新文章

  1. Spark源码学习1.8——ShuffleBlockManager.scala
  2. 忘记密码流程——UUID,AES
  3. 12-rm 命令总结
  4. C#回顾 &ndash; 4.IEnumerable 集合
  5. Memcache和Redis
  6. jmeter随笔(4)--中文url编码问题
  7. 安森美电量计采用内部电阻跟踪电流--电压HG-CVR
  8. 使用RPC 调用NameNode中的方法
  9. Php 使用 fsockopen发送http请求
  10. Web前端浏览器兼容问题
  11. Jboss getshell
  12. 学习python D1
  13. Java并发编程的4个同步辅助类(CountDownLatch、CyclicBarrier、Semaphore、Phaser)
  14. python基础--压缩文件
  15. 控制台操作mysql常用命令
  16. cmd下可以启动java,输入javac提示 不“存在”
  17. 多源复制遇到CREATE USER FAILED错误
  18. U3D协程yield的使用和理解
  19. cvpr densnet论文
  20. mysql删除账户

热门文章

  1. 【模板】Manacher 回文串
  2. 第2章 Python序列
  3. HDU 1836 畅通工程
  4. ACDream - Chasing Girl
  5. BZOJ2730 矿场搭建 解题报告 点双联通分量
  6. xth的第 12 枚硬币(codevs 1366)
  7. FORTIFY_SOURCE
  8. NandFlash、NorFlash、DataFlash
  9. hdu_1017_A Mathematical Curiosity_201310280948
  10. [bzoj1634][Usaco2007 Jan]Protecting the Flowers 护花_贪心