在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》,作者:李磊 转载请注明出处!!!

【Android】实例 忐忑的精灵的更多相关文章

  1. 45个android实例源码

    分享45个android实例源码,很好很强大http://www.apkbus.com/android-20978-1-1.html andriod闹钟源代码http://www.apkbus.com ...

  2. 分享45个android实例源码,很好很强大

    分享45个android实例源码,很好很强大 http://www.apkbus.com/android-20978-1-1.html 分享45个android实例源码,很好很强大http://www ...

  3. [Android实例] 有关spinner 的item问题 谁能给解答下??

    [Android实例] 有关spinner 的item问题 (更多Android问题解决,Android开发讨论 请访问:http://www.eoeandroid.com/forum.php)

  4. Android实例-实现扫描二维码并生成二维码(XE8+小米5)

    相关资料: 第三方资料太大没法写在博文上,请下载CSDN的程序包. 程序包下载: http://download.csdn.net/detail/zhujianqiangqq/9657186 注意事项 ...

  5. 实例介绍Cocos2d-x精灵菜单和图片菜单

    精灵菜单类是MenuItemSprite,图片菜单类是MenuItemImage.由于MenuItemImage继承于MenuItemSprite,所以图片菜单也属于精灵菜单.为什么叫精灵菜单呢?那是 ...

  6. 关于下拉刷新你是否真的非常理解还是只会搬砖?附 Android 实例子源代码文件下载地址380个合集

    1,推荐几篇非常有用的博文 原创写的真的非常好 主要讲解原理,整体布局三部分组成以及设置padding等等作用, 下拉的具体实现 滑动到底部具体加载以及判断手势事件,再次推荐作者的 详细讲解 建议先看 ...

  7. 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高

    第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...

  8. [Android实例教程] 教你如何拍照+相册选择图片+剪裁图片完整实现

    [Android实例教程] 教你如何拍照+相册选择图片+剪裁图片完整实现 今天做Android项目的时候要用到图片选择,要实现拍照获取图片和从相册获取图片,并且要求在获取完之后可以裁剪,试了很多方法之 ...

  9. [Android实例] Activity实例StartActivity出现NullPointer异常

    [Android实例] Activity实例StartActivity出现NullPointer异常 [android实例教程] 在Android低版本(如2.3.3)中出现如下“界面跳转”的错误: ...

随机推荐

  1. Marshal.ReleaseComObject() vs. Marshal.FinalReleaseComObject()

    很简单,不翻译了. If you are using COM components on your .NET code, you might be already aware of the Marsh ...

  2. SCI 论文金句

    SCI 不会写?其实英语基础好一点,文献多看一点,多写写自然就能自己写出来了.当然,你肯定会说英语真的好难,好吧,就知道你们懒得学英语了.我给你们整理了一套万能模板,涵盖了论文不同部分的常用句型. 摘 ...

  3. BZOJ 2754 [SCOI2012]喵星球上的点名 (AC自动机、树状数组)

    吐槽: 为啥很多人用AC自动机暴力跳都过了?复杂度真的对么? 做法一: AC自动机+树状数组 姓名的问题,中间加个特殊字符连起来即可. 肯定是对点名串建AC自动机(map存儿子),然后第一问就相当于问 ...

  4. Django——7 常用的查询 常用的模型字段类型 Field的常用参数 表关系的实现

    Django 常用的查询 常用的查询方法 常用的查询条件 常用字段映射关系 Field常用参数 表关系的实现 查用的查询方法 这是需要用到的数据 from django.http import Htt ...

  5. 暑假集训D20总结

    刷题 今天是瞎XX切题的一天 我要是不写题解的话,我自己都不知道刷了多少专题 数学什么的= = 生活 也就那样吧,没啥特别的 这两天倒是特别鬼畜 先是我点了一下某喵的$cena$,然后他的$cena$ ...

  6. HDU - 3556 - Continued Fraction

    先上题目: Continued Fraction Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Jav ...

  7. bcd(Binary-Coded Decimal‎缩写)

    Binary-Coded Decimal‎,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数.是一种二进制的数字编码形式,用二进制编码的十进制代码.这种编码形式利用了四个位元来储存一个十进制的 ...

  8. Java 两个整数相除保留两位小数,将小数转化为百分数

    Java 两个整数相除保留两位小数,将小数转化为百分数 源于:http://blog.sina.com.cn/s/blog_624d755d0101cvuq.html 后来学习了:http://blo ...

  9. json、js数组真心不是想得那么简单

    之前因为做前台的东西比較少,对于json和js数组的认识仅局限于一种固定格式.这样的固定的思维在开发前台时,特别是近期使用highcharts插件时.让我感到特别不明确.通过查询最终心头的疙瘩解开了. ...

  10. uva 11605 - Lights inside a 3d Grid(概率)

    option=com_onlinejudge&Itemid=8&page=show_problem&problem=2652" style=""& ...