在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. The C++ Programming Language - Bjarne Stroustrup

    Preface Part 1: Introduction 1.1 The Structure of This Book 1.1.1 Introduction 1.1.2 Basic Facilitie ...

  2. Luogu P2922 秘密消息

    原题 P2922 [USACO08DEC]秘密消息Secret Message 题目描述 Bessie is leading the cows in an attempt to escape! To ...

  3. [ZJOJ] 5772【NOIP2008模拟】今天你AK了吗

    Description AK:All kill“你为什么没背书?”“没有为什么,我就是没背书.”“……我去年买了个表,G—U—N!”头铁王InFleaKing把背书的时间都拿去列排列了......n= ...

  4. rsync全网备份

    rsync备份企业方案 企业有Linux服务器又有windows服务器,备份用rsync(服务端),Linux(客户端),Windows(客户端,cwrsync,旧版本有免费版)打包压缩数据往服务器上 ...

  5. Linux - redis发布|订阅

    目录 Linux - redis发布|订阅 发布|订阅 基本命令 发布和订阅实例 正则方式订阅一个或者多个符合模式的频道 Linux - redis发布|订阅 发布: publish 订阅: subs ...

  6. Flask - 路由系统

    目录 Flask - 路由系统 @app.route()装饰器中的常用参数 methods : 当前 url 地址,允许访问的请求方式 endpoint:反向url地址,默认为视图函数名(url_fo ...

  7. 洛谷 P1469 找筷子

    题目描述 经过一段时间的紧张筹备,电脑小组的“RP餐厅”终于开业了,这天,经理LXC接到了一个定餐大单,可把大家乐坏了!员工们齐心协力按要求准备好了套餐正准备派送时,突然碰到一个棘手的问题,筷子!CX ...

  8. 高三感想+跨年感想+OI回忆录

    2017.12.29晚 高三感慨 与OI分别很久了,发现自己已经不会敲代码了…… 高三国庆前大概比较正常,只是某只人影响有点大(现在好多了)…… 感觉国庆以后状态就没好过. 先感冒两个星期,然后某个周 ...

  9. asp.net--mvc--异步编程

    Using Asynchronous Methods in ASP.NET MVC 4 asp.net mvc中的异步只能增加系统的性能,原来需要500个线程的,现在需要50个就够了,对一些常规的程序 ...

  10. [bzoj2599][IOI2011]Race_树上点分治

    Race bzoj-2599 题目大意:询问一颗树上最短的.长度为k的链,边有边权,n个节点. 注释:$1\le n \le 2\cdot 10^5$,$1\le k \le 10^6$. 想法:树上 ...