`

Android动画animation

阅读更多

Android的animation由四种类型组成  

XML中  
alpha  (android.view.animation.AlphaAnimation)

渐变透明度动画效果 

 

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

/> 
<!-- 透明度控制动画效果 alpha 
浮点型值: 
fromAlpha 属性为动画起始时透明度 
toAlpha 属性为动画结束时透明度 
说明: 
0.0表示完全透明 
1.0表示完全不透明 
以上值取0.0-1.0之间的float数据类型的数字 

长整型值: 
duration 属性为动画持续时间 
说明: 
时间以毫秒为单位 
--> 
</set> 


scale  (android.view.animation.ScaleAnimation)

渐变尺寸伸缩动画效果  

<scale> 
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="[url=]http://schemas.android.com/apk/res/android[/url]"> 
<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" /> 
</set> 

<!-- 尺寸伸缩动画效果 scale 
属性:interpolator 指定一个动画的插入器 
在我试验过程中,使用android.res.anim中的资源时候发现 
有三种动画插入器: 
accelerate_decelerate_interpolator 加速-减速 动画插入器 
accelerate_interpolator 加速-动画插入器 
decelerate_interpolator 减速- 动画插入器 
其他的属于特定的动画效果 
浮点型值: 

fromXScale 属性为动画起始时 X坐标上的伸缩尺寸 
toXScale 属性为动画结束时 X坐标上的伸缩尺寸 

fromYScale 属性为动画起始时Y坐标上的伸缩尺寸 
toYScale 属性为动画结束时Y坐标上的伸缩尺寸 
startOffset 属性为从上次动画停多少时间开始执行下个动画 

说明: 
以上四种属性值 

0.0表示收缩到没有 
1.0表示正常无伸缩 
值小于1.0表示收缩 
值大于1.0表示放大 

pivotX 属性为动画相对于物件的X坐标的开始位置 
pivotY 属性为动画相对于物件的Y坐标的开始位置 

说明: 
以上两个属性值 从0%-100%中取值 
50%为物件的X或Y方向坐标上的中点位置 

长整型值: 
duration 属性为动画持续时间 
说明: 时间以毫秒为单位 

布尔型值: 
fillAfter 属性 当设置为true ,该动画转化在动画结束后被应用 
--> 

translate  (android.view.animation.TranslateAnimation)

画面转换位置移动动画效果  

 

<translate> 

<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="[url=]http://schemas.android.com/apk/res/android[/url]"> 
<translate 
android:fromXDelta="30" 
android:toXDelta="-80" 
android:fromYDelta="30" 
android:toYDelta="300" 
android:duration="2000" 
/> 
<!-- translate 位置转移动画效果 
整型值: 
fromXDelta 属性为动画起始时 X坐标上的位置 
toXDelta 属性为动画结束时 X坐标上的位置 
fromYDelta 属性为动画起始时 Y坐标上的位置 
toYDelta 属性为动画结束时 Y坐标上的位置 
注意: 
没有指定fromXType toXType fromYType toYType 时候, 
默认是以自己为相对参照物 
长整型值: 
duration 属性为动画持续时间 
说明: 时间以毫秒为单位 
--> 
</set>  
rotate  (android.view.animation.RotateAnimation)

画面转移旋转动画效果

 

<rotate> 
<?xml version="1.0" encoding="utf-8"?> 
<set xmlns:android="[url=]http://schemas.android.com/apk/res/android[/url]"> 
<rotate 
android:interpolator="@android:anim/accelerate_decelerate_interpolator" 
android:fromDegrees="0" 
android:toDegrees="+350" 
android:pivotX="50%" 
android:pivotY="50%" 
android:duration="3000" /> 
<!-- rotate 旋转动画效果 
属性:interpolator 指定一个动画的插入器 
在我试验过程中,使用android.res.anim中的资源时候发现 
有三种动画插入器: 
accelerate_decelerate_interpolator 加速-减速 动画插入器 
accelerate_interpolator 加速-动画插入器 
decelerate_interpolator 减速- 动画插入器 
其他的属于特定的动画效果 

浮点数型值: 
fromDegrees 属性为动画起始时物件的角度 
toDegrees 属性为动画结束时物件旋转的角度 可以大于360度 

说明: 
当角度为负数——表示逆时针旋转 
当角度为正数——表示顺时针旋转 
(负数from——to正数:顺时针旋转) 
(负数from——to负数:逆时针旋转) 
(正数from——to正数:顺时针旋转) 
(正数from——to负数:逆时针旋转) 

pivotX 属性为动画相对于物件的X坐标的开始位置 
pivotY 属性为动画相对于物件的Y坐标的开始位置 

说明: 以上两个属性值 从0%-100%中取值 
50%为物件的X或Y方向坐标上的中点位置 

长整型值: 
duration 属性为动画持续时间 
说明: 时间以毫秒为单位 
--> 
</set> 

 

 

如何使用XML中的动画效果 
public static Animation loadAnimation (Context context, int id) 
//第一个参数Context为程序的上下文 
//第二个参数id为动画XML文件的引用 
//例子: 
myAnimation= AnimationUtils.loadAnimation(this,R.anim.my_action); 
//使用AnimationUtils类的静态方法loadAnimation()来加载XML中的动画XML文件 

 

 

Android动画解析--JavaCode 

 

AlphaAnimation 

 

① AlphaAnimation类对象定义 

private AlphaAnimation myAnimation_Alpha; 

 

② AlphaAnimation类对象构造 

AlphaAnimation(float fromAlpha, float toAlpha) 

//第一个参数fromAlpha为 动画开始时候透明度 

//第二个参数toAlpha为 动画结束时候透明度 

myAnimation_Alpha=new AlphaAnimation(0.1f, 1.0f); 

//说明: 

// 0.0表示完全透明 

// 1.0表示完全不透明 

 

③ 设置动画持续时间 

myAnimation_Alpha.setDuration(5000); 

 

//设置时间持续时间为 5000毫秒 

 

---------------------------------------------------------------------------------------------------------------

ScaleAnimation

① ScaleAnimation类对象定义 

private AlphaAnimation myAnimation_Alpha; 

 

② ScaleAnimation类对象构造 

ScaleAnimation(float fromX, float toX, float fromY, float toY, 

int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 

//第一个参数fromX为动画起始时 X坐标上的伸缩尺寸 

//第二个参数toX为动画结束时 X坐标上的伸缩尺寸 

//第三个参数fromY为动画起始时Y坐标上的伸缩尺寸 

//第四个参数toY为动画结束时Y坐标上的伸缩尺寸

//第五个参数pivotXType为动画在X轴相对于物件位置类型 

//第六个参数pivotXValue为动画相对于物件的X坐标的开始位置 

//第七个参数pivotXType为动画在Y轴相对于物件位置类型 

//第八个参数pivotYValue为动画相对于物件的Y坐标的开始位置

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_Scale.setDuration(700); 

//设置时间持续时间为 700毫秒 

-------------------------------------------------------------------------------------------------------------------

TranslateAnimation 

 

① TranslateAnimation类对象定义 

private AlphaAnimation myAnimation_Alpha;

② TranslateAnimation类对象构造 

TranslateAnimation(float fromXDelta, float toXDelta, 

float fromYDelta, float toYDelta) 

//第一个参数fromXDelta为动画起始时 X坐标上的移动位置 

//第二个参数toXDelta为动画结束时 X坐标上的移动位置 

//第三个参数fromYDelta为动画起始时Y坐标上的移动位置 

//第四个参数toYDelta为动画结束时Y坐标上的移动位置 

③ 设置动画持续时间 

myAnimation_Translate.setDuration(2000); 

//设置时间持续时间为 2000毫秒  

---------------------------------------------------------------------------------------------------------------

RotateAnimation 

① RotateAnimation类对象定义 

private AlphaAnimation myAnimation_Alpha; 

② RotateAnimation类对象构造 

RotateAnimation(float fromDegrees, float toDegrees, 

int pivotXType, float pivotXValue, int pivotYType, float pivotYValue) 

//第一个参数fromDegrees为动画起始时的旋转角度 

//第二个参数toDegrees为动画旋转到的角度 

//第三个参数pivotXType为动画在X轴相对于物件位置类型 

//第四个参数pivotXValue为动画相对于物件的X坐标的开始位置 

//第五个参数pivotXType为动画在Y轴相对于物件位置类型 

//第六个参数pivotYValue为动画相对于物件的Y坐标的开始位置 

myAnimation_Rotate=new RotateAnimation(0.0f, +350.0f, 

Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);

③ 设置动画持续时间 

myAnimation_Rotate.setDuration(3000); 

//设置时间持续时间为 3000毫秒 

--------------------------------------------------------------------------------------------------------------------

如何使用Java代码中的动画效果 

 

使用从View父类继承过来的方法startAnimation()来为View或是子类View等等添加一个动画效果 

动画效果的次序

 

android:animationOrder="random" //随机

android:animationOrder="reverse"//逆向

gridLayoutAnimation

android:directionPriority="row"

android:directionPriority="column"

android:direction="right_to_left|bottom_to_top"

 

分享到:
评论

相关推荐

    Android 动画 Animation Demo

    在Android开发中,动画(Animation)是提升用户体验和界面交互性的重要工具。Android动画主要分为两种类型:属性动画(Property Animation)和视图动画(View Animation)。本篇将深入探讨这两种动画机制,以及如何在...

    Android的动画Animation详解

    ### Android的动画Animation详解 #### 一、动画概述 Android平台提供了丰富的动画支持,通过不同的方式可以实现多种视觉效果,从而提升用户体验。Android动画主要分为两大类:Tween动画(渐变动画)和Frame-by-...

    Android动画源码 Animation

    在Android中,所有的动画都可以通过`Animation`类或者其子类来创建。`Animation`类提供了一些基本属性,如动画的持续时间、重复次数、是否反向播放等。开发者可以通过设置这些属性来定制动画效果。 接着,`BAnim_v7...

    Android动画之Animation

    Android动画之Animation的使用。包括变换动画Tween Animation,帧动画Frame Animation,布局动画Layout Animation,属性动画Property Animation

    Android的动画animation

    Android提供了两种主要的动画机制:补间动画(Tween Animation)和逐帧动画(Frame Animation),这两种动画方式都能帮助开发者创造出丰富多彩的视觉效果。 **补间动画(Tween Animation)** 补间动画主要用于改变...

    android动画介绍之 自定义Animation动画

    在这里,我们主要关注基于`Animation`类的自定义动画,它是Android早期版本中主要的动画实现方式。 一、理解Animation `Animation`是Android动画的基础类,它定义了动画的基本行为,如持续时间、重复次数等。`...

    android动画效果animation

    在Android开发中,动画效果是提升用户体验的关键因素之一。Android提供了丰富的动画系统,使得开发者能够为应用程序添加各种动态效果,从而提高应用的交互性和吸引力。本文将深入探讨Android动画效果的使用,包括对...

    android Animation动画实现loading效果

    在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要工具之一,特别是在创建加载(Loading)效果时。本文将深入探讨如何使用Android Animation来实现动态的Loading效果。 一、Android Animation概述 ...

    Android-Animation动画之Tween Animation补间动画

    在Android中,补间动画由`Animation`类及其子类如`TranslateAnimation`、`ScaleAnimation`、`RotateAnimation`和`AlphaAnimation`来实现。这些子类分别对应于平移、缩放、旋转和透明度变化四种基本动画效果。 1. **...

    Android 属性动画(Property Animation)

    Android属性动画(Property Animation)是Android 3.0(API级别11)引入的一个强大功能,它极大地扩展了Android的动画系统,使得开发者能够实现更丰富、更动态的视觉效果。与视图动画(View Animation)不同,属性...

    android动画例子:tween animation and property animation

    Tween Animation,也称为帧动画,是在Android SDK早期版本中引入的,主要用于实现对象在屏幕上的简单移动、旋转、缩放等效果。Tween Animation基于关键帧的概念,即在动画过程中定义开始和结束状态,然后系统会自动...

    Android动画效果--渐变动画

    在Android开发中,动画效果是提升用户体验的关键因素之一。渐变动画是Android动画体系中的一种基本类型,它可以为用户界面带来生动和动态的感觉。本文将深入探讨四种主要的渐变动画:Alpha(透明度)、Scale(缩放)...

    android中的动画(Animation)详解

    在Android中,实现帧动画主要包括以下步骤: 1. **准备图像资源**:将所有要播放的图片放入`res/drawable`目录。 2. **创建动画XML**:在`res/anim`目录下创建一个XML文件,如上面的例子所示,`&lt;animation-list&gt;`...

    Android中的Animation的使用

    在Android中,我们可以通过`&lt;animation-list&gt;`标签在XML中定义帧动画。每个子元素`&lt;item&gt;`代表一个帧,设置`android:duration`决定每帧持续时间。例如: ```xml &lt;animation-list xmlns:android=...

    android 动画(animation)简单特效

    这个是一个简单的动画demo 用两种方式实现:1是xml+android代码;2是全android代码。 目的是帮忙一些朋友理解animation 的使用和学习 demo写的比较的简单。有什么不好的地方也请帮忙批评指出。共同进步

    Android动画之(PropertyAnimation)属性动画详解(一)

    在Android开发中,动画是提升用户体验的关键因素之一。属性动画(Property Animation)是Android 3.0(API级别11)引入的一种强大的动画系统,它极大地扩展了Android平台上的动画能力,使得开发者能够实现更为复杂和...

    Android Animation动画资源文件

    在Android开发中,动画是提升用户体验的关键因素之一。Android Animation主要分为两大类:补间动画(Tween Animation)和帧动画(Frame Animation)。本资源文件主要关注补间动画,这是一种通过改变对象属性(如位置、...

    Android 抖动动画效果

    首先,我们要知道在Android中,动画主要分为两种类型:补间动画(Tween Animation)和帧动画(Frame Animation)。抖动动画属于补间动画的一种,因为它涉及到对象的位置、大小或透明度等属性的变化。补间动画是通过...

    博客《Android动画之一:Drawable Animation》附带源码

    在Android中,Drawable不仅仅是一个静态图像,它还可以作为动画序列的容器。通过将多张图片放入一个Drawable资源文件中,我们可以创建一个帧动画。这种动画方式特别适合那些不需要复杂交互或过渡效果的场景。例如,...

Global site tag (gtag.js) - Google Analytics