【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》,作者:李磊 转载请注明出处!!!
最新文章
- Spark源码学习1.8——ShuffleBlockManager.scala
- 忘记密码流程——UUID,AES
- 12-rm 命令总结
- C#回顾 &ndash; 4.IEnumerable 集合
- Memcache和Redis
- jmeter随笔(4)--中文url编码问题
- 安森美电量计采用内部电阻跟踪电流--电压HG-CVR
- 使用RPC 调用NameNode中的方法
- Php 使用 fsockopen发送http请求
- Web前端浏览器兼容问题
- Jboss getshell
- 学习python D1
- Java并发编程的4个同步辅助类(CountDownLatch、CyclicBarrier、Semaphore、Phaser)
- python基础--压缩文件
- 控制台操作mysql常用命令
- cmd下可以启动java,输入javac提示 不“存在”
- 多源复制遇到CREATE USER FAILED错误
- U3D协程yield的使用和理解
- cvpr densnet论文
- mysql删除账户
热门文章
- 【模板】Manacher 回文串
- 第2章 Python序列
- HDU 1836 畅通工程
- ACDream - Chasing Girl
- BZOJ2730 矿场搭建 解题报告 点双联通分量
- xth的第 12 枚硬币(codevs 1366)
- FORTIFY_SOURCE
- NandFlash、NorFlash、DataFlash
- hdu_1017_A Mathematical Curiosity_201310280948
- [bzoj1634][Usaco2007 Jan]Protecting the Flowers 护花_贪心