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>
相关推荐
在Android开发中,动画(Animation)是提升用户体验和界面交互性的重要工具。Android动画主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。本篇将深入探讨这两种动画机制,以及如何在...
在Android开发中,Drawable Animation是一种实现简单动画的机制,它允许开发者通过一组连续的图片或者形状来创建动画效果。这个“DrawableAnimation简单示例”涵盖了如何在应用中使用Drawable Animation的基本步骤,...
在Android中,所有的动画都可以通过`Animation`类或者其子类来创建。`Animation`类提供了一些基本属性,如动画的持续时间、重复次数、是否反向播放等。开发者可以通过设置这些属性来定制动画效果。 接着,`BAnim_v7...
五、Shake Animation示例 压缩包中的`Shake`文件可能包含一个摇晃动画的实现。摇晃动画通常是通过改变View的X坐标来实现的。下面是一个简单的摇晃动画示例: ```java public class ShakeAnimation extends ...
视图动画在早期版本的Android中引入,主要用于改变视图的位置、大小、透明度等属性,但并不实际改变视图的状态,只是视觉上的欺骗。属性动画系统在Android 3.0(API级别11)之后引入,它允许开发者对对象的任何属性...
综上所述,帧动画在Android中主要用于创建简单的动态效果,适用于游戏、加载指示器等场景。通过合理的资源管理和编程控制,我们可以创建出丰富多样的动态用户体验。在实际项目中,应根据需求选择合适的动画实现方式...
在Android中,帧动画主要通过`<animation-list>`标签在XML资源文件中定义。下面将详细介绍如何实现一个加载动画。 1. **创建帧动画资源** 在`res/anim`目录下创建一个XML文件,例如`loading_animation.xml`。在这...
在Android中,补间动画由`Animation`类及其子类如`TranslateAnimation`、`ScaleAnimation`、`RotateAnimation`和`AlphaAnimation`来实现。这些子类分别对应于平移、缩放、旋转和透明度变化四种基本动画效果。 1. **...
"Animation Demo 试用示例"是一个专为初学者设计的项目,旨在介绍Android平台上的动画机制。在这个示例中,我们将探讨四种基本的动画效果,它们是Tween动画。Tween动画是Android动画系统中的一种基础类型,用于实现...
Android属性动画(Property Animation)是Android 3.0(API级别11)引入的一个强大功能,它极大地扩展了Android的动画系统,使得开发者能够实现更丰富、更动态的视觉效果。与视图动画(View Animation)不同,属性...
Tween Animation,也称为帧动画,是在Android SDK早期版本中引入的,主要用于实现对象在屏幕上的简单移动、旋转、缩放等效果。Tween Animation基于关键帧的概念,即在动画过程中定义开始和结束状态,然后系统会自动...
在Android中,实现帧动画主要包括以下步骤: 1. **准备图像资源**:将所有要播放的图片放入`res/drawable`目录。 2. **创建动画XML**:在`res/anim`目录下创建一个XML文件,如上面的例子所示,`<animation-list>`...
在Android开发中,帧动画(Frame Animation)是一种常见的动画效果,它通过连续播放一系列静态图像来创造出动态的视觉效果,类似于传统的电影制作原理。在这个"android 简单的帧动画例子"中,我们将探讨如何在...
以上就是如何在Android中实现一个简单的逐帧动画的基本步骤。你可以根据项目需求调整动画帧的顺序、显示时间和动画的重复次数,以创建出各种生动有趣的动画效果。在实际开发中,还可以结合其他动画类型,如补间动画...
在本文中,我们将深入探讨如何使用Android Tween动画,并通过具体的代码示例进行详解。 首先,我们来看`alpha`动画,它用于改变视图的透明度。Alpha动画的实现主要使用`AlphaAnimation`类。以下是一个简单的示例: ...
在Android开发中,动画是提升用户体验的关键因素之一。属性动画(Property Animation)是Android 3.0(API级别11)引入的一种强大的动画系统,它极大地扩展了Android平台上的动画能力,使得开发者能够实现更为复杂和...
在Android中,Drawable不仅仅是一个静态图像,它还可以作为动画序列的容器。通过将多张图片放入一个Drawable资源文件中,我们可以创建一个帧动画。这种动画方式特别适合那些不需要复杂交互或过渡效果的场景。例如,...
首先,我们要知道在Android中,动画主要分为两种类型:补间动画(Tween Animation)和帧动画(Frame Animation)。抖动动画属于补间动画的一种,因为它涉及到对象的位置、大小或透明度等属性的变化。补间动画是通过...
在Android中,逐帧动画可以通过`AnimationDrawable`类来实现。`AnimationDrawable`是一个可绘制对象,可以作为视图的背景,并且可以像动画一样顺序播放其包含的帧。以下将详细介绍如何创建和使用逐帧动画。 首先,...