`
vinny_w
  • 浏览: 56032 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Android-Animation动画

阅读更多

Android -Animation动画基础

 

定义AnimationXML程序代码

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:重新开始 2plays 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-->

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

0
0
分享到:
评论

相关推荐

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

    补间动画(Tween Animation)是Android提供的基本动画类型,它通过对对象的透明度、大小、位置或旋转等属性进行平滑过渡来实现视觉效果。本篇文章将深入探讨Android中的Tween Animation,包括其原理、使用方法以及...

    Android-android-ui-animation-components-and-libraries.zip

    Android-android-ui-animation-components-and-libraries.zip,android ui库、组件和动画作者@ramotion-https://github.com/ramotion/swift-ui-animation-components-libraries,安卓系统是谷歌在2008年设计和制造的。...

    Android代码-Android-Animation-Set

    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-custom-animation0.2.rar"显然是一个关于Android视图自定义动画的示例,旨在帮助开发者理解并掌握自定义动画的实现方法。 在Android中,动画主要分为两种类型:属性动画(Property Animation)和...

    Android-Marshmallow-Boot-Animation.zip

    Android-Marshmallow-Boot-Animation.zip文件,正如其名,包含的是Android Marshmallow(6.0)系统的启动动画资源。这篇文章将深入探讨这一版本的启动动画,以及它是如何在系统中工作的。 Android Marshmallow,...

    android-TextView-Animation

    本项目"android-TextView-Animation"就是专注于实现这样的效果,使得TextView内部的文字能够产生美观的动画。 在Android中,我们可以利用内置的动画系统来对TextView进行操作。主要有两种类型的动画:属性动画...

    Android-Animation demo

    "Android-Animation demo" 是一个专门展示Android动画API的示例项目,旨在帮助开发者更好地理解和使用Android平台上的各种动画技术。 Android提供了两种主要类型的动画:视图动画(View Animation)和属性动画...

    android-view-animation抖动shake

    "android-view-animation抖动shake"这个话题主要涉及到了Android视图动画中的shake效果,这是一种常见的错误提示或吸引用户注意力的动画方式,比如当用户输入错误时,可以令编辑框(EditText)进行抖动来提示。...

    Android_rotate--animation.zip_Android 动画_android_android animati

    Android提供了多种动画类型,包括视图动画(View Animation)和属性动画(Property Animation)系统。本资源“Android_rotate--animation.zip”似乎聚焦于视图动画中的旋转效果,特别是如何在两个图片之间平滑地进行旋转...

    玩转Android---2D图形及动画---Frame动画

    这篇博文"玩转Android---2D图形及动画---Frame动画"显然会深入探讨如何在Android平台上创建和管理帧动画。帧动画是一种将一系列静态图像连续播放以产生动态效果的技术,常见于游戏和应用程序中的过渡效果。 首先,...

    Android-一个App的Logo的动画效果实现

    Android支持多种动画类型,包括属性动画(Property Animation)、帧动画(Frame Animation)和视图动画(View Animation)。Logo动画通常适合使用属性动画,因为它提供了更丰富的控制和灵活性。在"QccLogo-...

    Android-Animation

    在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要工具。`Android-Animation`这个项目提供了一系列的示例代码,旨在帮助开发者理解和实践Android平台上的动画技术。以下是关于Android动画的一些关键...

    Android动画效果--渐变动画

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

    nougat-boot-animation.zip

    《Android 动画:深度解析nougat-boot-animation.zip》 在Android开发中,动画是提升用户体验的关键元素之一。本文将深入探讨一个名为“nougat-boot-animation.zip”的压缩包,它高度模仿了Android 7.0(代号Nougat...

    Android-利用动画实现背景逐渐变暗

    Android提供了两种主要的动画类型:补间动画(Tween Animation)和帧动画(Frame Animation)。在这个场景下,我们将使用补间动画,它允许我们在一定时间内改变一个或多个属性,如透明度,以实现背景从亮到暗的过渡...

    Android-Animation-Demo:Android动画调研

    Android-Animation-DemoAndroid 动画调研该项目主要演示如何使用 ViewAnimation 、DrawableAnimation、PropertyAnimation、LayoutAnimation 的使用方式。配套博客地址:

    Android---Frame动画

    在Android开发中,帧动画(Frame Animation)是一种常见的动画效果,它通过连续播放一系列静态图像来模拟动态效果。本文将深入探讨如何在Android项目中应用帧动画,包括使用`AnimationDrawable`和`ImageView`实现这...

    Android代码-animation的结合蝴蝶飞的动画使用动画里面的几种类型.zip

    "Android代码-animation的结合蝴蝶飞的动画使用动画里面的几种类型.zip"这个资源包显然包含了如何在Android应用中实现蝴蝶飞舞的动画效果,涉及到Android动画的不同类型。以下是关于Android动画及其在该示例中应用的...

    android-animation-collections:android动画集合

    "android-animation-collections" 是一个专注于Android动画的项目集合,其中包含了多种动画效果的实现,旨在帮助开发者更好地理解和运用Android动画系统。下面将详细介绍其中的两个主要组件:ShakeAnimation 和 ...

Global site tag (gtag.js) - Google Analytics