android学习之Animation(二)---在xml文件中实现Animation

简介: 在xml中实现animation    一、在res文件夹下新建一个名为anim的文件夹    二、创建xml文件,首先加入set标签                      xmlns:android="http://schemas.
在xml中实现animation
    一 、在res文件夹下新建一个名为anim的文件夹
    二 、创建xml文件,首先加入set标签
                     xmlns:android="http://schemas.android.com/apk/res/android"
            android:interpolator="@android:anim/accelerate_interpolator"
        >
        
    三 、在set标签中加入rotate、translate、alpha、scale标签,每一个动画效果占一个xml文件

点击(此处)折叠或打开

  1.     (1)alpha.xml:    
  2.          ?xml version="1.0" encoding="utf-8"?>
  3.         set
  4.          xmlns:android="http://schemas.android.com/apk/res/android"
  5.          android:interpolator="@android:anim/accelerate_interpolator">
  6.          alpha                           ?透明效果?>            
  7.          android:fromAlpha="0.1"          ?开始透明度10%?>
  8.          android:toAlpha="1.0"            ?结束透明度?>
  9.          android:duration="3000"          ?设置动画执行时间?>
  10.          android:startOffset="500"        ?设置动画执行前的等待时间?>
  11.          />
  12.         /set>
  13.     
  14.     (2)rotate.xml:
  15.         ?xml version="1.0" encoding="utf-8"?>
  16.         set
  17.          xmlns:android="http://schemas.android.com/apk/res/android"
  18.          android:interpolator="@android:anim/accelerate_interpolator">
  19.              rotate                       ?旋转效果?>
  20.              android:fromDegrees="0"       ?起始角度?>
  21.              android:toDegrees="+350"      ?结束角度?>
  22.              android:pivotX="50%"          ?旋转点的x坐标 “50”代表绝对位置,“50%”相对于控件本身,“50%p”相对于父控件?>
  23.              android:pivotY="50%"          ?旋转点的y坐标?>
  24.              android:duration="3000"       ?动画执行的时间?>
  25.          />
  26.         /set>
  27.     (3)scale.xml
  28.         ?xml version="1.0" encoding="utf-8"?>
  29.         set
  30.          xmlns:android="http://schemas.android.com/apk/res/android"
  31.          android:interpolator="@android:anim/accelerate_interpolator">
  32.             scale                              ?缩放效果?>
  33.                 android:fromXScale="1.0"        ?起始x坐标?>
  34.                 android:toXScale="0.1"          ?结束x坐标?>
  35.                 android:fromYScale="1.0"        ?起始y坐标?>
  36.                 android:toYScale="0.1"          ?结束y坐标?>
  37.                 android:pivotX="50%"            ?缩放原点x坐标?>
  38.                 android:pivotY="50%"            ?缩放原点y坐标?>
  39.                 android:duration="3000"         ?动画持续时间?>
  40.              />
  41.         /set>
    四、在代码中使用AnimationUtils装载xml文件,并生成Animation对象
        Animation animation_alpha = AnimationUtils.loadAnimation(MainActivity.this , R.anim.alpha);
        imageView.startAnimation(animation_alpha);
     、Animation的实现

点击(此处)折叠或打开

  1. public class MainActivity extends Activity
  2. {
  3.     private Button alphaButton = null;
  4.     private Button scaleButton = null;
  5.     private Button rotateButton = null;
  6.     private Button translateButton = null;
  7.     private ImageView imageView = null;
  8.     
  9.     @Override
  10.     protected void onCreate(Bundle savedInstanceState)
  11.     {
  12.         super.onCreate(savedInstanceState);
  13.         setContentView(R.layout.activity_main);
  14.         //找到控件
  15.         alphaButton = (Button)findViewById(R.id.alphaBtn);
  16.         scaleButton = (Button)findViewById(R.id.scaleBtn);
  17.         rotateButton = (Button)findViewById(R.id.rotateBtn);
  18.         translateButton= (Button)findViewById(R.id.translateBtn);
  19.         imageView = (ImageView)findViewById(R.id.imageViewId);
  20.         //为控件添加事件
  21.         alphaButton.setOnClickListener(new btnListener());
  22.         scaleButton.setOnClickListener(new btnListener());
  23.         rotateButton.setOnClickListener(new btnListener());
  24.         translateButton.setOnClickListener(new btnListener());
  25.     }
  26.     
  27.     class btnListener implements OnClickListener
  28.     {

  29.         @Override
  30.         public void onClick(View v)
  31.         {
  32.             // TODO Auto-generated method stub
  33.             switch(v.getId())
  34.             {
  35.                 case R.id.alphaBtn:
  36.                     //透明效果
  37.                     Animation animation_alpha = AnimationUtils.loadAnimation(MainActivity.this , R.anim.alpha);
  38.                     imageView.startAnimation(animation_alpha);
  39.                     break;
  40.                 case R.id.scaleBtn:
  41.                     //缩放效果
  42.                     Animation animation_scale = AnimationUtils.loadAnimation(MainActivity.this , R.anim.scale);
  43.                     imageView.startAnimation(animation_scale);
  44.                     break;
  45.                 case R.id.rotateBtn:
  46.                     //旋转效果
  47.                     Animation animation_rotate = AnimationUtils.loadAnimation(MainActivity.this , R.anim.rotate);
  48.                     imageView.startAnimation(animation_rotate);
  49.                     break;
  50.                 case R.id.translateBtn:
  51.                     //移动效果
  52.                     Animation animation_translate = AnimationUtils.loadAnimation(MainActivity.this , R.anim.translate);
  53.                     imageView.startAnimation(animation_translate);
  54.                     break;
  55.                 default:
  56.                         break;
  57.             }            
  58.         }
  59.         
  60.     }
  61.     @Override
  62.     public boolean onCreateOptionsMenu(Menu menu)
  63.     {
  64.         // Inflate the menu; this adds items to the action bar if it is present.
  65.         getMenuInflater().inflate(R.menu.main, menu);
  66.         return true;
  67.     }

  68. }
    xml文件
    1、alpha.xml

点击(此处)折叠或打开

  1. ?xml version="1.0" encoding="utf-8"?>
  2. set
  3.     xmlns:android="http://schemas.android.com/apk/res/android"
  4.     android:interpolator="@android:anim/accelerate_interpolator">
  5.  
  6.     alpha
  7.         android:fromAlpha="0.1"
  8.         android:toAlpha="1.0"
  9.         android:duration="3000"
  10.         android:startOffset="500"
  11.         />
  12. /set>
    2、scalse.xml

点击(此处)折叠或打开

  1. ?xml version="1.0" encoding="utf-8"?>
  2. set
  3.     xmlns:android="http://schemas.android.com/apk/res/android"
  4.     android:interpolator="@android:anim/accelerate_interpolator">
  5.     
  6.     scale
  7.         android:fromXScale="1.0"
  8.         android:toXScale="0.1"
  9.         android:fromYScale="1.0"
  10.         android:toYScale="0.1"
  11.         android:pivotX="50%"
  12.         android:pivotY="50%"
  13.         android:duration="3000"
  14.     />
  15.    
  16. /set>
    3、rotate.xml

点击(此处)折叠或打开

  1. ?xml version="1.0" encoding="utf-8"?>
  2. set
  3.     xmlns:android="http://schemas.android.com/apk/res/android"
  4.     android:interpolator="@android:anim/accelerate_interpolator">
  5.     
  6.     rotate
  7.            android:fromDegrees="0"
  8.            android:toDegrees="+350"
  9.            android:pivotX="50%"
  10.            android:pivotY="50%"
  11.            android:duration="3000"
  12.         />
  13.    
  14. /set>
    4、translate.xml

点击(此处)折叠或打开

  1. ?xml version="1.0" encoding="utf-8"?>
  2. set
  3.     xmlns:android="http://schemas.android.com/apk/res/android"
  4.     android:interpolator="@android:anim/accelerate_interpolator"
  5.     >
  6.    translate
  7.        
  8.        />
  9.    
  10. /set>
    布局文件

点击(此处)折叠或打开

  1. RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:paddingBottom="@dimen/activity_vertical_margin"
  6.     android:paddingLeft="@dimen/activity_horizontal_margin"
  7.     android:paddingRight="@dimen/activity_horizontal_margin"
  8.     android:paddingTop="@dimen/activity_vertical_margin"
  9.     tools:context=".MainActivity" >

  10.     TextView
  11.         android:layout_width="wrap_content"
  12.         android:layout_height="wrap_content"
  13.         android:text="@string/hello_world" />
  14.     Button
  15.         android:id="@+id/alphaBtn"
  16.         android:layout_width="fill_parent"
  17.         android:layout_height="wrap_content"
  18.         android:layout_alignParentBottom="true"
  19.         android:text="alpha动画"
  20.         />
  21.     Button
  22.         android:id="@+id/scaleBtn"
  23.         android:layout_width="fill_parent"
  24.         android:layout_height="wrap_content"
  25.         android:layout_above="@id/alphaBtn"
  26.         android:text="scale动画"
  27.         />
  28.     Button
  29.         android:id="@+id/rotateBtn"
  30.         android:layout_width="fill_parent"
  31.         android:layout_height="wrap_content"
  32.         android:layout_above="@id/scaleBtn"
  33.         android:text="rotate动画"
  34.         />
  35.     Button
  36.         android:id="@+id/translateBtn"
  37.         android:layout_width="fill_parent"
  38.         android:layout_height="wrap_content"
  39.         android:layout_above="@id/rotateBtn"
  40.         android:text="translate动画"
  41.         />
  42.     ImageView
  43.         android:id="@+id/imageViewId"
  44.         android:layout_height="wrap_content"
  45.         android:layout_width="wrap_content"
  46.         android:layout_centerInParent="true"
  47.         android:layout_marginTop="100dip"
  48.         android:src="@drawable/ic_launcher"
  49.         />
  50. /RelativeLayout>

相关文章
|
6月前
|
Android开发 开发者
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
本文详细介绍了如何通过自定义 `attrs.xml` 文件实现 Android 自定义 View 的属性配置。以一个包含 TextView 和 ImageView 的 DemoView 为例,讲解了如何使用自定义属性动态改变文字内容和控制图片显示隐藏。同时,通过设置布尔值和点击事件,实现了图片状态的切换功能。代码中展示了如何在构造函数中解析自定义属性,并通过方法 `setSetting0n` 和 `setbackeguang` 实现功能逻辑的优化与封装。此示例帮助开发者更好地理解自定义 View 的开发流程与 attrs.xml 的实际应用。
177 2
Android自定义View之不得不知道的文件attrs.xml(自定义属性)
|
6月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
615 19
|
9月前
|
移动开发 安全 Java
Android历史版本与APK文件结构
通过以上内容,您可以全面了解Android的历史版本及其主要特性,同时掌握APK文件的结构和各部分的作用。这些知识对于理解Android应用的开发和发布过程非常重要,也有助于在实际开发中进行高效的应用管理和优化。希望这些内容对您的学习和工作有所帮助。
962 83
|
6月前
|
存储 XML Java
Android 文件数据储存之内部储存 + 外部储存
简介:本文详细介绍了Android内部存储与外部存储的使用方法及核心原理。内部存储位于手机内存中,默认私有,适合存储SharedPreferences、SQLite数据库等重要数据,应用卸载后数据会被清除。外部存储包括公共文件和私有文件,支持SD卡或内部不可移除存储,需申请权限访问。文章通过代码示例展示了如何保存、读取、追加、删除文件以及将图片保存到系统相册的操作,帮助开发者理解存储机制并实现相关功能。
1768 2
|
ARouter Android开发
Android不同module布局文件重名被覆盖
Android不同module布局文件重名被覆盖
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
1027 1
|
8月前
|
XML JavaScript Android开发
【Android】网络技术知识总结之WebView,HttpURLConnection,OKHttp,XML的pull解析方式
本文总结了Android中几种常用的网络技术,包括WebView、HttpURLConnection、OKHttp和XML的Pull解析方式。每种技术都有其独特的特点和适用场景。理解并熟练运用这些技术,可以帮助开发者构建高效、可靠的网络应用程序。通过示例代码和详细解释,本文为开发者提供了实用的参考和指导。
294 15
|
Java Maven 开发工具
第一个安卓项目 | 中国象棋demo学习
本文是作者关于其第一个安卓项目——中国象棋demo的学习记录,展示了demo的运行结果、爬坑记录以及参考资料,包括解决Android Studio和maven相关问题的方法。
211 7
第一个安卓项目 | 中国象棋demo学习
|
Android开发
Android学习 —— 测试init.rc中的条件触发的处理顺序
Android学习 —— 测试init.rc中的条件触发的处理顺序
|
存储 监控 数据库
Android经典实战之OkDownload的文件分段下载及合成原理
本文介绍了 OkDownload,一个高效的 Android 下载引擎,支持多线程下载、断点续传等功能。文章详细描述了文件分段下载及合成原理,包括任务创建、断点续传、并行下载等步骤,并展示了如何通过多种机制保证下载的稳定性和完整性。
577 1

热门文章

最新文章