Android -Animation动画基础
定义Animation:XML、程序代码
Animation动画的四种类型:
动画模式
|
动画效果
|
XML中
|
代码中
|
TweenAnimation
(渐变动画)
|
渐变透明度
|
alpha
|
AlphaAnimation
|
渐变尺寸伸缩
|
scale
|
ScaleAnimation
|
FrameAnimation
(画面转换动画)
|
画面转换位置移动
|
translate
|
TranslateAnimation
|
画面转移旋转
|
rotate
|
RotateAnimation
|
一、在XML文件中定义动画
① 打开Eclipse,新建Android工程
② 在res目录中新建anim文件夹
③ 在anim目录中新建一个myanim.xml(注意文件名小写)
④ 加入XML的动画代码
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha/>
<scale/>
<translate/>
<rotate/>
</set>
每个元素表示不同的动画效果
Tween Animation共同的节点属性:
属性[类型]
|
功能
|
备注
|
Duration[long]
|
动画持续时间
|
时间以毫秒为单位
|
interpolator
|
指定一个动画的插入器
|
accelerate_decelerate_interpolator 加速-减速 accelerate_interpolator 加速 decelerate_interpolator 减速
|
RepeatMode[int]
|
定义重复的行为
|
1:重新开始 2:plays backward
|
zAdjustment[int]
|
定义动画的Z Order的改变
|
0:保持Z Order不变 1:保持在最上层 -1:保持在最下层
|
fillAfter[boolean]
|
当设置为true ,该动画转化在动画结束后被应用
|
fillBefore[boolean]
|
当设置为true ,该动画转化在动画开始前被应用
|
repeatCount[int]
|
动画的重复次数
|
startOffset[long]
|
动画之间的时间间隔,从上次动画停多少时间开始执行下个动画
|
XML节点的功能说明
|
Alpha 渐变透明度动画效果
|
<alpha android:fromAlpha=”0.1″ android:toAlpha=”1.0″ android:duration=”3000″ />
|
fromAlpha
|
动画起始时透明度
|
0.0表示完全透明 1.0表示完全不透明 取0.0-1.0之间的float数据类型的数字
duration为动画持续时间,ms单位
|
toAlpha
|
动画结束时透明度
|
Scale 渐变尺寸伸缩动画效果
|
<scale android:interpolator=
“@android:anim/accelerate_decelerate_interpolator” android:fromXScale=”0.0″ android:toXScale=”1.4″ android:fromYScale=”0.0″ android:toYScale=”1.4″ android:pivotX=”50%” android:pivotY=”50%” android:fillAfter=”false” android:startOffset=“700” android:duration=”700″ android:repeatCount=”10″ />
|
fromXScale[float] fromYScale[float]
|
动画起始时,X、Y坐标上的伸缩尺寸
|
0.0表示收缩到没有 1.0表示正常无伸缩 值小于1.0表示收缩 值大于1.0表示放大
|
toXScale [float] toYScale[float]
|
动画结束时,X、Y坐标上的伸缩尺寸
|
pivotX[float] pivotY[float]
|
动画相对于物件的X、Y坐标的开始位置
|
从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置
|
Translate 画面转换位置移动动画效果
|
<translate android:fromXDelta=”30″ android:toXDelta=”-80″ android:fromYDelta=”30″ android:toYDelta=”300″ android:duration=”2000″ />
|
fromXDelta toXDelta
|
动画、结束起始时 X坐标上的位置
|
fromYDelta toYDelta
|
动画、结束起始时 Y坐标上的位置
|
Rotate 画面转移旋转动画效果
|
<rotate android:interpolator=
”@android:anim/accelerate_decelerate_interpolator” android:fromDegrees=”0″ android:toDegrees=”+350″ android:pivotX=”50%” android:pivotY=”50%” android:duration=”3000″ />
|
fromDegrees
|
动画起始时物件的角度
|
当角度为负数——表示逆时针旋转 当角度为正数——表示顺时针旋转 (负数from——to正数:顺时针旋转) (负数from——to负数:逆时针旋转) (正数from——to正数:顺时针旋转) (正数from——to负数:逆时针旋转)
|
toDegrees
|
动画结束时物件旋转的角度,可以大于360度
|
pivotX pivotY
|
动画相对于物件的X、Y坐标的开始位
|
从0%-100%中取值,50%为物件的X或Y方向坐标上的中点位置
|
在Java代码中实现XML中的动画效果:
import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;
public class AnimationActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Animation animation = AnimationUtils.loadAnimation(this, R.anim.myanim);//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件
ImageView imageView = (ImageView) findViewById(R.id.imageView);
imageView.startAnimation(animation);//启动动画
}
}
public static Animation loadAnimation (Context context, int id)
//第一个参数Context为程序的上下文,第二个参数id为动画XML文件的引用。
二、在Java代码中定义动画
//在代码中定义 动画实例对象
private Animation myAnimation_Alpha;
private Animation myAnimation_Scale;
private Animation myAnimation_Translate;
private Animation myAnimation_Rotate;
//根据各自的构造方法来初始化一个实例对象
myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f);
myAnimation_Scale =new ScaleAnimation(0.0f, 1.4f, 0.0f, 1.4f,
Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);
myAnimation_Translate=new TranslateAnimation(30.0f, -80.0f, 30.0f, 300.0f);
myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f, Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);
<!--EndFragment-->
--------------------------------------------------------------------
分享到:
相关推荐
补间动画(Tween Animation)是Android提供的基本动画类型,它通过对对象的透明度、大小、位置或旋转等属性进行平滑过渡来实现视觉效果。本篇文章将深入探讨Android中的Tween Animation,包括其原理、使用方法以及...
Android-android-ui-animation-components-and-libraries.zip,android ui库、组件和动画作者@ramotion-https://github.com/ramotion/swift-ui-animation-components-libraries,安卓系统是谷歌在2008年设计和制造的。...
Android Animation Detailed Tutorial / Android 动画详尽教程 中文讲解(README)请直接点击对应标题 English explanation(or readme), Do not click on the title, please click on the tip ...
本项目"android-custom-animation0.2.rar"显然是一个关于Android视图自定义动画的示例,旨在帮助开发者理解并掌握自定义动画的实现方法。 在Android中,动画主要分为两种类型:属性动画(Property Animation)和...
Android-Marshmallow-Boot-Animation.zip文件,正如其名,包含的是Android Marshmallow(6.0)系统的启动动画资源。这篇文章将深入探讨这一版本的启动动画,以及它是如何在系统中工作的。 Android Marshmallow,...
本项目"android-TextView-Animation"就是专注于实现这样的效果,使得TextView内部的文字能够产生美观的动画。 在Android中,我们可以利用内置的动画系统来对TextView进行操作。主要有两种类型的动画:属性动画...
"Android-Animation demo" 是一个专门展示Android动画API的示例项目,旨在帮助开发者更好地理解和使用Android平台上的各种动画技术。 Android提供了两种主要类型的动画:视图动画(View Animation)和属性动画...
"android-view-animation抖动shake"这个话题主要涉及到了Android视图动画中的shake效果,这是一种常见的错误提示或吸引用户注意力的动画方式,比如当用户输入错误时,可以令编辑框(EditText)进行抖动来提示。...
Android提供了多种动画类型,包括视图动画(View Animation)和属性动画(Property Animation)系统。本资源“Android_rotate--animation.zip”似乎聚焦于视图动画中的旋转效果,特别是如何在两个图片之间平滑地进行旋转...
这篇博文"玩转Android---2D图形及动画---Frame动画"显然会深入探讨如何在Android平台上创建和管理帧动画。帧动画是一种将一系列静态图像连续播放以产生动态效果的技术,常见于游戏和应用程序中的过渡效果。 首先,...
Android支持多种动画类型,包括属性动画(Property Animation)、帧动画(Frame Animation)和视图动画(View Animation)。Logo动画通常适合使用属性动画,因为它提供了更丰富的控制和灵活性。在"QccLogo-...
在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要工具。`Android-Animation`这个项目提供了一系列的示例代码,旨在帮助开发者理解和实践Android平台上的动画技术。以下是关于Android动画的一些关键...
在Android开发中,动画效果是提升用户体验的关键因素之一。渐变动画是Android动画体系中的一种基本类型,它可以为用户界面带来生动和动态的感觉。本文将深入探讨四种主要的渐变动画:Alpha(透明度)、Scale(缩放)...
《Android 动画:深度解析nougat-boot-animation.zip》 在Android开发中,动画是提升用户体验的关键元素之一。本文将深入探讨一个名为“nougat-boot-animation.zip”的压缩包,它高度模仿了Android 7.0(代号Nougat...
Android提供了两种主要的动画类型:补间动画(Tween Animation)和帧动画(Frame Animation)。在这个场景下,我们将使用补间动画,它允许我们在一定时间内改变一个或多个属性,如透明度,以实现背景从亮到暗的过渡...
Android-Animation-DemoAndroid 动画调研该项目主要演示如何使用 ViewAnimation 、DrawableAnimation、PropertyAnimation、LayoutAnimation 的使用方式。配套博客地址:
在Android开发中,帧动画(Frame Animation)是一种常见的动画效果,它通过连续播放一系列静态图像来模拟动态效果。本文将深入探讨如何在Android项目中应用帧动画,包括使用`AnimationDrawable`和`ImageView`实现这...
"Android代码-animation的结合蝴蝶飞的动画使用动画里面的几种类型.zip"这个资源包显然包含了如何在Android应用中实现蝴蝶飞舞的动画效果,涉及到Android动画的不同类型。以下是关于Android动画及其在该示例中应用的...
"android-animation-collections" 是一个专注于Android动画的项目集合,其中包含了多种动画效果的实现,旨在帮助开发者更好地理解和运用Android动画系统。下面将详细介绍其中的两个主要组件:ShakeAnimation 和 ...