`
hanllove001
  • 浏览: 49191 次
  • 性别: Icon_minigender_1
  • 来自: 绵阳
社区版块
存档分类
最新评论

android之animation(一)

阅读更多

animations:动画。

新知识点介绍:animations是一系列的动画效果,这些效果可以运用在绝大数控件上面。

animations总的说来可以分为两类:

1、Tweened Animations:包括旋转、移动、伸展、淡入淡出等效果。

2、Frame-by-Frame Animations:这个可以创建一个Drawable序列,可以一个一个的显示。


这次介绍第一类动画效果:

这些动画有一些公共的函数如下:

setDuration(float time)动画执行时间;

setFillAfter(boolean b)是否保持动画结束时状态;

setFillBefore(boolean b)是否返回动画开始状态,当动画结束后;

setStartOffset(long time)经过多少时间动画开始执行;

setRepeatCount(int i)动画重复次数(默认为0)。


设置动画有两种方法,直接在代码中设置;或者在xml中设置。第一种方法比较容易理解,符合开发人员习惯;第二中方法比较容易进行二次开发,代码少。


一、代码中设置:

1、rotate:旋转。表示一个控件绕着一个点做旋转(平面旋转)。这个旋转是围绕一个点,而这个点是由百分比决定的,比如相对于自身时x为0.5,y为0.5,那么这个点就是该控件的中心;如果x为1,y为1,那么这个点就是控件的右下角;相对父控件时x为0.5,y为0.5,那么这个点就是该父控件的中心。

看代码:


                	/**
			 * 参数:1、开始角度,0是开始位置;2、最后终止位置与开始位置角度
			 * 3、旋转点x相对哪个控件,4、x所占该控件的比例;5、旋转点y相对哪个控件;6、y所占该控件的比例
			 */
			RotateAnimation rotateanimation = new RotateAnimation(
					//从现在状态绕着他本身的右下角旋转90度
					0, 90, Animation.RELATIVE_TO_SELF,1f, Animation.RELATIVE_TO_SELF,1f);
			//设置执行时间
			rotateanimation.setDuration(1000);
			//是否保持动画完时的状态
			rotateanimation.setFillAfter(true);
			//是否动画完了返回原状态
			rotateanimation.setFillBefore(false);
			//隔多长时间动画显示
			rotateanimation.setStartOffset(1000);
			//动画重复执行次数
			rotateanimation.setRepeatCount(1);
			//设置动画效果
			imageview.setAnimation(rotateanimation);

 

代码已经有了具体的注释,imageview为一张图片,上面是将图片绕着他自己的右下角旋转90度。

其中新建rotateanimation 时里面的第3和第5个参数也可以是Animation.RELATIVE_TO_PARENT,

相对父控件的x,y轴比例。


2、alpha:淡入淡出。

代码:


AlphaAnimation alphaanimation = new AlphaAnimation(1, 0);
			//设置动画时间
			alphaanimation.setDuration(1000);
imageview.setAnimation(alphaanimation);

 

构造函数的参数:第一个是动画前的透明度,1表示不透明,0表示完全透明;第二个是动画后的透明度。


3、translate:移动。移动就是由某一位置移动到另一位置,就是该控件相对自己或者父控件的一位置移动到另一个相对自己或者父控件的位置,那么他的构造函数就应该能猜到了吧,下面是代码:



                        /**
			 * 参数:1、移动前x相对的控件,2、x的比例,3、移动后x相对的控件,4、x的比例;
			 * 	     5、移动前y相对的控件 ,6、y的比例,7、移动后y相对的控件,8、y的比例
			 */
			TranslateAnimation translateanimation = new TranslateAnimation(
					Animation.RELATIVE_TO_SELF,0f,
					Animation.RELATIVE_TO_SELF,1f,
					Animation.RELATIVE_TO_SELF,0f,
					Animation.RELATIVE_TO_SELF,1f);
			translateanimation.setDuration(1000);
			imageview.setAnimation(translateanimation);

 

这个代码实现的是将该图片从相对自己的(0,0)坐标移动到相对自己的(x的长,y的长)坐标处。


4、scale:伸展。对控件进行放大或者缩小。



                         /**
			 * 参数:1、伸展前x的比例,2、伸展后x的比例,3、伸展前y的比例,4、伸展后y的比例
			 * 5、伸展x对应的控件,6、伸展y对应的控件
			 */
			ScaleAnimation scaleanimation  = new ScaleAnimation(
					1f, 0f, 1f, 0f, Animation.RELATIVE_TO_SELF, Animation.RELATIVE_TO_SELF);
			scaleanimation.setDuration(1000);
			imageview.setAnimation(scaleanimation);

 

     这个代码是将该图片缩小到0。参数都有详尽的解释。





**********************************************************************************



第二种方法:

在xml中设置:


1、首先在res下新建一个文件夹anim(animation的缩写)。


2、在该文件夹下新建所需要的动画的xml:


a、scale .xml:


 

<?xml version="1.0" encoding="utf-8"?>
<set  xmlns:android="http://schemas.android.com/apk/res/android"
	android:interpolator="@android:anim/accelerate_interpolator">
	<scale 
		android:fromXScale="1"
		android:toXScale="0"
		android:fromYScale="1"
		android:toYScale="0"
		android:duration="1000"
	/>
</set>

 

 

代码解释:scale ,伸展。参数依次是 x的原始百分比;伸展后x的百分比;y的原始百分比;伸展后y的百分比;

动画时间。


b、alpha,淡入淡出。


<?xml version="1.0" encoding="utf-8"?>

<set  xmlns:android="http://schemas.android.com/apk/res/android"
	android:interpolator="@android:anim/accelerate_interpolator">
	<alpha 
		android:fromAlpha="1"
		android:toAlpha="0"
		android:duration="1000"
	/>
</set>


代码解释:

控件开始状态透明度;控件最终透明度;动画时间。


c、rotate、旋转。


 

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

 


代码解释:

开始角度;最终角度;旋转点x的百分比;旋转y的百分比;动画时间。

这里要说下,第三个和第四个参数配置有三中:

android:pivotX="50",这个是绝对位置,相对于整个屏幕的位置。

android:pivotX="50%",这个是相对自身的比例。

android:pivotX="50%p",这个是相对父控件的比例。


d、translate : 移动。


 

<?xml version="1.0" encoding="utf-8"?>
<set  xmlns:android="http://schemas.android.com/apk/res/android"
	android:interpolator="@android:anim/accelerate_interpolator">
	<translate 
		android:fromXDelta="50%"
		android:toXDelta="50%"
		android:fromYDelta="50%"
		android:toYDelta="50%"
		android:duration="1000"
	/>
</set>

 

 

代码解释:


移动前x的位置;移动后x的位置;移动前y的位置;移动后y的位置;时间

他的这个配置和上面的rotate一样,也有三种方法。不再赘述。


3、在代码中使用xml:

由于使用所有的xml都类似,我们只列举一种:


Animation translateanimation = AnimationUtils.loadAnimation(
					Animation1Activity.this, R.anim.translate);
			imageview.setAnimation(translateanimation);

 

代码解释:

首先新建一个Animation ,他是由AnimationUtils中的一个静态方法loadAnimation来实例化,可以通过他们的

名字就知道他们的意思。

这个loadAnimation需要两个参数,一个是context;一个是这个动画对应的xml的id。



今天就到这里了。

分享到:
评论
1 楼 zhouy478319399 2011-10-07  
很好 学习一下

相关推荐

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

    本文将深入探讨Android自定义`Animation`动画的实现方式,帮助开发者更好地掌握这一技术。 Android动画分为多种类型,包括`Animation`类(补间动画)、`ViewPropertyAnimator`(属性动画)、以及`Transition`(过渡...

    2011.10.18——— android 自定义Animation

    在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要手段。这篇博客“2011.10.18——— android 自定义Animation”可能详细探讨了如何在Android平台上自定义各种动画效果,包括但不限于平移、旋转、...

    Android 动画 Animation Demo

    3. **帧动画(Frame Animation)**:虽然帧动画不是属性动画的一部分,但它是Android动画体系中的一个关键元素。帧动画通过连续播放一系列图像来创建动画效果,常用于简单的2D游戏或加载指示器。`AnimationDrawable`是...

    Android Animation Demo

    在Android平台上,动画是提升用户体验的关键元素之一。`Android Animation Demo`是一个实例,它展示了如何在Android应用中实现各种动画效果。这篇详细讲解将围绕标题和描述中的知识点展开,包括Tween Animation(补...

    Android中的Animation的使用

    在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要工具。Android提供了多种动画机制,包括帧动画(Frame Animation)、补间动画(Tween Animation)、属性动画(Property Animation)。本篇将详细...

    Android ViewFlipper Animation 使用

    在Android开发中,ViewFlipper是一个非常有用的布局组件,它允许开发者轻松地在多个视图之间切换,同时还可以添加动画效果,使得用户界面更加生动和交互性更强。本篇文章将详细探讨如何在Android应用程序中使用...

    Android之Animation<2>

    这篇博客"Android之Animation&lt;2&gt;"可能详细探讨了Android动画系统的一些高级话题,包括自定义动画、帧动画以及属性动画等。由于没有提供具体的内容摘要,我将根据常见的Android动画知识点进行详细的解释。 首先,...

    Android 属性动画(Property Animation)

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

    android动画例子:tween animation and property animation

    在Android开发中,动画是提升用户体验的关键因素之一。本文将深入探讨两种主要的Android动画类型:Tween Animation(平滑动画)和Property Animation(属性动画)。这两种技术都能为应用程序带来生动和交互性的效果...

    android_animation

    在Android平台上,动画是提升用户体验的关键元素之一,尤其是在视图(View)操作中。"android_animation"这个主题主要聚焦于Android中的View动画,这包括了转换动画(Translation Animation)、缩放动画(Scale ...

    Android View中添加Animation.rar

    在Android开发中,View动画是实现用户界面动态效果的关键技术之一。`Android View中添加Animation.rar`这个压缩包文件很可能是包含了一些示例代码或教程,帮助开发者了解如何在Android的视图元素上添加动画效果。...

    Android Animation相关

    Android提供了多种动画类型,其中补间动画(Tween Animation)是最基础且广泛使用的一种。补间动画通过改变对象在帧之间的属性来实现平滑过渡的效果。在这个主题中,我们将深入探讨Android补间动画的原理、使用方法...

    Android TweenAnimation源码

    在Android开发中,动画是提升用户体验的关键因素之一。TweenAnimation是Android SDK中提供的一种基础动画类型,它基于帧动画(Frame Animation)的概念,通过平移、旋转、缩放和改变透明度等属性来实现对象的变化...

    Android动画之Animation

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

    android之Animation<1>

    在Android开发中,动画(Animation)是提升用户体验和视觉效果的重要手段。本篇文章将深入探讨Android中的`Animation`,特别是`android.view.animation`包下的动画系统。我们将从基础概念、类型、实现方式以及应用场景...

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

    在Android开发中,动画是提升用户体验的关键因素之一。补间动画(Tween Animation)是Android提供的基本动画类型,它通过对对象的透明度、大小、位置或旋转等属性进行平滑过渡来实现视觉效果。本篇文章将深入探讨...

    android之animation-list实现的简单粘稠加载效果使用demo

    在Android开发中,动画是提升用户体验的关键元素之一。`animation-list`是Android系统提供的一种用于创建帧动画的视图组件,常用来实现如加载、旋转、弹跳等效果。本教程将深入探讨如何使用`animation-list`来创建一...

    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 ...

Global site tag (gtag.js) - Google Analytics