Animation是Android给我们提供的一个可以实现动画效果的API,利用Animation我们可以实现一系列的动画效果,比如缩放动画,透明度动画,旋转动画,位移动画,布局动画,帧动画等等.Android基础动画分为四种,分别是Tween Animation,Frame Animation,Layout Animation,Property Animation.由于动画效果不好用图片进行展示,大家可以自己亲手试试看下效果.下面给出前三种简单的示例代码,帮助大家进行简单的动画入门.

(1) Tween Animation (变换动画)

  Tween Animation按效果可以分为四种:Alpha,Scale,Translate,Rotate,它们有一下共同属性:

  1. Duration: 动画持续时间(毫秒);

  2. fillAfter: 设置为True,动画转换在动画结束后被应用;

  3. fillBefore: 设置为True,动画转换在动画开始前被应用;

  4. interpolator: 动画插入器(加速,减速插入器);

  5. repeatCount: 动画重复次数;

  6. repeatMode: 正序重复/倒序重复

  7. startOffSet: 动画之间的时间间隔

  ① Alpha (渐变透明度动画)

  MainActivity.java主要代码:  

ImageView image = (ImageView) findViewById(id.image);
Animation loadAnimation = AnimationUtils.loadAnimation(this, R.anim.alpha);
image.startAnimation(loadAnimation);

  alpha.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <alpha
android:duration="1000"
android:fromAlpha="0.1"
android:toAlpha="1.0" >
</alpha> </set>

  ② Scale (渐变尺寸缩放动画)

  MainActivity.java主要代码:

ImageView image = (ImageView) findViewById(id.image);
Animation loadAnimation = AnimationUtils.loadAnimation(this, R.anim.scale);
image.startAnimation(loadAnimation);

  scale.xml  

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <scale
android:duration="2000"
android:fillAfter="false"
android:fromXScale="0.0"
android:fromYScale="0.0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" /> </set>

  ③ Translate (位置移动动画)

  MainActivity.java主要代码:  

ImageView image = (ImageView) findViewById(id.image);
Animation loadAnimationloadAnimation = AnimationUtils.loadAnimation(this, R.anim.translate);
image.startAnimation(loadAnimation);

  translate.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <translate
android:duration="1000"
android:fromXDelta="10"
android:fromYDelta="10"
android:toXDelta="100"
android:toYDelta="100" /> </set>

  ④ Rotate (旋转动画)

  MainActivity.java主要代码:

ImageView image = (ImageView) findViewById(id.image);
Animation loadAnimation loadAnimation = AnimationUtils.loadAnimation(this, R.anim.rotate);
image.startAnimation(loadAnimation);

  rotate.xml  

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" > <rotate
android:duration="1000"
android:fromDegrees="0"
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:pivotX="50%"
android:pivotY="50%"
android:toDegrees="+360" /> </set>

(2) Layout Animation (布局动画)

  MainActivity.java主要代码:

Intent intent=new Intent(MainActivity.this,ListActivity.class);
startActivity(intent);

  ListActivity.java代码:

package com.example.caobotao.learnanimation;

import java.util.ArrayList;
import java.util.List; import android.app.Activity;
import android.os.Bundle;
import android.view.animation.AnimationUtils;
import android.view.animation.LayoutAnimationController;
import android.widget.ArrayAdapter;
import android.widget.ListView; public class ListActivity extends Activity{ private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.list_layout);
listView=(ListView) findViewById(R.id.listView);
List<String>list=new ArrayList<String>();
for(int i=0;i<20;i++)
{
list.add("示例"+i);
}
ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
listView.setAdapter(adapter);
LayoutAnimationController lac=new LayoutAnimationController(AnimationUtils.loadAnimation(this, R.anim.zoom_in));
lac.setOrder(LayoutAnimationController.ORDER_NORMAL);
listView.setLayoutAnimation(lac);
listView.startLayoutAnimation();
} }

  zoom_in.xml

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/decelerate_interpolator" > <scale
android:duration="1000"
android:fromXScale="0.1"
android:fromYScale="0.1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.0"
android:toYScale="1.0" />
<alpha
android:duration="1000"
android:fromAlpha="0"
android:toAlpha="1.0" />
</set>

(3) Frame Animation (帧动画)

  MainActivity.java主要代码:

ImageView image = (ImageView) findViewById(id.image);
image.setImageResource(R.drawable.anim_list);
AnimationDrawable animationDrawable = (AnimationDrawable) image.getDrawable();
animationDrawable.start();

  anim_list.xml

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" > <item
android:drawable="@mipmap/one"
android:duration="500"/>
<item
android:drawable="@mipmap/two"
android:duration="500"/>
<item
android:drawable="@mipmap/three"
android:duration="500"/>
<item
android:drawable="@mipmap/four"
android:duration="500"/>
<item
android:drawable="@mipmap/five"
android:duration="500"/>
<item
android:drawable="@mipmap/six"
android:duration="500"/> </animation-list>

作者:caobotao
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

Android动画Animation简单示例的更多相关文章

  1. Android 动画animation 深入分析

    转载请注明出处:http://blog.csdn.net/farmer_cc/article/details/18259117 Android 动画animation 深入分析 前言:本文试图通过分析 ...

  2. Android动画Animation之Tween用代码实现动画

    透明度动画.旋转动画.尺寸伸缩动画.移动动画 package com.javen.tween; import android.annotation.SuppressLint; import andro ...

  3. css3 动画(animation)-简单入门

    css3之动画(animation) css3中我们可以使用动画,由于取代以前的gif图片,flash动画,以及部分javascript代码(相信有很多同学都用过jquery中的animate方法来做 ...

  4. android json 解析 简单示例

    1 下面是一个简单的json 解析的demo,废话不多说,直接上代码 package com.sky.gallery; import java.io.ByteArrayOutputStream; im ...

  5. DoTween 动画插件简单示例

    .doTween的静态方法 DOTween.To(() => maskImage.color, toColor => maskImage.color = toColor, , , , ), ...

  6. Android SQLite(1)简单示例-增,删,改,查

    1.主要核心类,Sqlite编程要继承SQLiteOpenHelper import android.content.Context; import android.database.sqlite.S ...

  7. 代码: CSS3动画,简单示例(鼠标移上去后,背景图片旋转)

    <script type="text/javascript" src="http://cdn.bootcss.com/jquery/1.11.2/jquery.mi ...

  8. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  9. 虾扯蛋:Android View动画 Animation不完全解析

    本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节 ...

随机推荐

  1. NOIP2017普及组T2题解

    还是神奇的链接 上面依然是题目. 这道题依然很简单,比起2015年的普及组t2好像还是更水一些. 不过这道题能讲的比第一题多. 我们一起来看一下吧! 这一题,我们首先将书的编号全部读入,存在一个数组里 ...

  2. 2018.11.17 bzoj4259: 残缺的字符串(fft)

    传送门 fftfftfft套路题. 我们把aaa ~ zzz映射成111 ~ 262626,然后把∗*∗映射成000. 考虑对于两个长度都为nnn的字符串A,BA,BA,B. 我们定义一个差异函数di ...

  3. vue 开发系列(六) 企业微信整合

    概述 手机端程序可以和企业微信进行整合,我们也可以使用企业微信JSSDK功能,实现一些原生的功能. 整合步骤 在整合之前需要阅读 整合步骤. http://work.weixin.qq.com/api ...

  4. excel怎样添加的选项卡中含有下拉列表

    <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon s ...

  5. js,javascript,获取地址栏参数

    function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...

  6. 基础运动move.js

    /* * 事件绑定 */ function myAddEvent(obj,ev,fn){ if(obj.attachEvent){ obj.attachEvent('on' + ev,fn); }el ...

  7. Jquery 单击_双击_鼠标经过_鼠标离开_背景样式变化

    列表页点击.鼠标经过离开背景变化 <script type="text/javascript"> $(function () { $("table tr&qu ...

  8. Redis集群命令行部署工具

    使用之前准备工作: 1)配置好与端口无关的公共redis.conf文件,和工具放在同一目录下 2)配置好与端口相关的模板redis-PORT.conf文件,也和工具放在同一目录下(部署时PORT会被替 ...

  9. iOS程序的执行顺序 和 UIViewController的生命周期

    iOS程序的执行顺序 1 进入程序的入口 进入main函数, 设置AppDelegate称为函数的代理 2  程序完成加载 -[AppDelegate application:didFinishLau ...

  10. Libre Office冻结操作-MAC

    冻结行/列 选中所要冻结的行/列,选择window-Freeze 冻结成功 冻结单元格 操作方法与“冻结行/列”一致