【Android】实例 忐忑的精灵
在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】实例 忐忑的精灵的更多相关文章
- 45个android实例源码
		
分享45个android实例源码,很好很强大http://www.apkbus.com/android-20978-1-1.html andriod闹钟源代码http://www.apkbus.com ...
 - 分享45个android实例源码,很好很强大
		
分享45个android实例源码,很好很强大 http://www.apkbus.com/android-20978-1-1.html 分享45个android实例源码,很好很强大http://www ...
 - [Android实例] 有关spinner 的item问题 谁能给解答下??
		
[Android实例] 有关spinner 的item问题 (更多Android问题解决,Android开发讨论 请访问:http://www.eoeandroid.com/forum.php)
 - Android实例-实现扫描二维码并生成二维码(XE8+小米5)
		
相关资料: 第三方资料太大没法写在博文上,请下载CSDN的程序包. 程序包下载: http://download.csdn.net/detail/zhujianqiangqq/9657186 注意事项 ...
 - 实例介绍Cocos2d-x精灵菜单和图片菜单
		
精灵菜单类是MenuItemSprite,图片菜单类是MenuItemImage.由于MenuItemImage继承于MenuItemSprite,所以图片菜单也属于精灵菜单.为什么叫精灵菜单呢?那是 ...
 - 关于下拉刷新你是否真的非常理解还是只会搬砖?附 Android 实例子源代码文件下载地址380个合集
		
1,推荐几篇非常有用的博文 原创写的真的非常好 主要讲解原理,整体布局三部分组成以及设置padding等等作用, 下拉的具体实现 滑动到底部具体加载以及判断手势事件,再次推荐作者的 详细讲解 建议先看 ...
 - 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高
		
第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...
 - [Android实例教程] 教你如何拍照+相册选择图片+剪裁图片完整实现
		
[Android实例教程] 教你如何拍照+相册选择图片+剪裁图片完整实现 今天做Android项目的时候要用到图片选择,要实现拍照获取图片和从相册获取图片,并且要求在获取完之后可以裁剪,试了很多方法之 ...
 - [Android实例] Activity实例StartActivity出现NullPointer异常
		
[Android实例] Activity实例StartActivity出现NullPointer异常 [android实例教程] 在Android低版本(如2.3.3)中出现如下“界面跳转”的错误: ...
 
随机推荐
- 三、Scrapy中选择器用法
			
官方示例源码<html> <head> <base href='http://example.com/' /> <title>Example web ...
 - 【MFC Programming】 Using Dialog To Set A Correlate Menu
			
This blog will show how to display a menu we designed in a dialog. 1.Insert a new dialog& a new ...
 - 该页必须使用安全性较高的Web 浏览器查看
			
当用https访问某个网站时,IE提醒“该页必须使用安全性较高的Web 浏览器查看” 您要访问的资源使用了128位版本的“安全套接层(SSL)” 安全保护.要查看该资源,您需要使用支持该版本的SSL浏 ...
 - LightOJ - 1148 - Mad Counting
			
先上题目: 1148 - Mad Counting PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Limit: 3 ...
 - Cash Machine POJ 1276 多重背包
			
Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 35387 Accepted: 12816 Description A B ...
 - ubuntu设置不睡眠的方法
			
Ubuntu系统不睡眠设置方法:要完成这个设置Ubuntu有两种方法:第一种是打开 System Settings –> Power,中文版是打开系统设置 -> 电源),然后进行设置.但不 ...
 - 【Java集合源代码剖析】Hashtable源代码剖析
			
转载请注明出处:http://blog.csdn.net/ns_code/article/details/36191279 Hashtable简单介绍 Hashtable相同是基于哈希表实现的,相同每 ...
 - leetcode中,代码怎样调试,创造本地执行环境
			
初次接触leetcode,是我在一个招聘站点上看的,这个OJ真有那么厉害吗? 这几天在这个OJ上做了几道题,发现他的几个特点,1.题目不难(相对于ACM来说,我被ACM虐到至今无力),评判没那么苛刻, ...
 - 使用oracle数据库和MySQL数据库时hibernate的映射文件.hbm.xml的不同
			
假设是使用oracle数据库.那么hibernate的映射文件.hbm.xml例如以下: <id name="xuehao" column="xuehao" ...
 - 民意调查Django实现(三)
			
我们接着第二小节的開始继续我们的旅程. 我们会继续Web-poll应用.而且将会专注于创建公共接口 - "Views". 哲学思想 一个视图是你的Django应用中的一个Web页面 ...