zoukankan      html  css  js  c++  java
  • 【Android】实例 忐忑的精灵

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

    (1)首先在resdrawable目录中添加一个名称为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)修改新建项目的reslayout目录下的布局文件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》,作者:李磊 转载请注明出处!!!

  • 相关阅读:
    @RequestParam和@PathVariable用法小结
    Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法
    allator 对springBoot进行加密
    commons-lang3相关类实例
    JSP自定义标签
    Netty的简单Demo
    Spring-AOP为类增加新的功能
    深入理解abstract class和interface
    linux的基本操作
    GitHub从小白到熟悉<二>
  • 原文地址:https://www.cnblogs.com/mrxy/p/8057649.html
Copyright © 2011-2022 走看看