`

android动画基础:tween动画

阅读更多
工程结构图:
[img]

[/img]


四个动画的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <alpha
        android:fromAlpha="1.0"
        android:toAlpha="0" 
        android:duration="5000"
    />
    
</set>
<!-- alpha标识透明度,
android:fromAlpha表示动画开始时的透明度,1.0表示一点都不透明,
android:toAlpha="0" 表示动画结束后的透明度,0表示完全透明,
android:duration="5000"表示动画持续的时间,即从不透明到完全透明的时间为5秒钟 -->


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="100"
        android:toYDelta="100" 
        android:duration="5000"
    />
    
</set>
<!-- translate表示动画中的移动
 android:fromXDelta="0"  android:fromYDelta="0" 表示动画开始时的位置为控件的自身位置 
 android:toXDelta="100"  android:toYDelta="100" 表示动画结束后,x坐标 y坐标都增加100,即向右下方移动
 android:duration="5000" 表示动画持续的时间-->
 


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <scale
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:toXScale="5.0"
        android:toYScale="5.0"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration="5000"
    />
    
</set>

<!-- scale动画中的缩放
android:fromXScale="1.0"表示动画开始时宽度是控件自身宽度的1.0被。
android:fromYScale="1.0"表示动画开始时高度度是控件自身高度的1.0被。
android:toXScale="5.0" 表示动画结束后宽度扩大到原来的5被。
android:toYScale="5.0" 表示动画结束后高度扩大到原来的5被。
android:pivotX="50%"   android:pivotY="50%"表示以中心点为参考点进行缩放
android:duration="5000" 表示动画的持续时间为5000毫秒=5秒。
 -->


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <rotate
        android:fromDegrees="0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%" 
        android:duration="5000"
    />
    
</set>

<!-- rotate控制动画中的旋转
android:fromDegrees="0" 表示初始时的角度为0度。
android:toDegrees="360" 表示将要旋转360度。
android:pivotX="50%"   android:pivotY="50%"  表示旋转时以空间本身的中心点为中心进行旋转。
android:duration="5000"  表示动画持续时间为5000毫秒
 -->



MainActivity:
package com.zzl.animation;

import android.app.Activity;
import android.os.Bundle;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.RotateAnimation;
import android.widget.ImageView;

public class MainActivity extends Activity {
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 1,透明动画效果
		Animation animation1 = AnimationUtils.loadAnimation(MainActivity.this,
				R.anim.alpha);
		// 2,移动动画效果
		Animation animation2 = AnimationUtils.loadAnimation(MainActivity.this,
				R.anim.translate);
		// 3,缩放动画效果
		Animation animation3 = AnimationUtils.loadAnimation(MainActivity.this,
				R.anim.scale);
		// 4,旋转动画效果
		Animation animation4 = AnimationUtils.loadAnimation(MainActivity.this,
				R.anim.rotate);

		// 如果设为 true,表示设置动画完成后保持动画后的状态
		animation1.setFillAfter(true);
		// animation2.setFillAfter(true);

		/**
		 * 用代码添加一个旋转动画
		 */

		Animation animation = new RotateAnimation(0, 360,
				Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF,
				0.5f);
		animation.setDuration(10000);
		ImageView iv = (ImageView) findViewById(R.id.iv);
		iv.setAnimation(animation);
	}
}





Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。

第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。



下面就讲一下Tweene Animations。

AlphaAnimation



通过代码实现 AlphaAnimation,如下:
    //初始化  
    Animation alphaAnimation = new AlphaAnimation(0.1f, 1.0f);  
    //设置动画时间            alphaAnimation.setDuration(3000);  
                    this.startAnimation(alphaAnimation);  

其中AlphaAnimation类第一个参数fromAlpha表示动画起始时的透明度, 第二个参数toAlpha表示动画结束时的透明度。

setDuration用来设置动画持续时间。








RotateAnimation
代码:
    Animation rotateAnimation = new RotateAnimation(0f, 360f);  
                    rotateAnimation.setDuration(1000);  
                    this.startAnimation(rotateAnimation);  

其中RotateAnimation类第一个参数fromDegrees表示动画起始时的角度, 第二个参数toDegrees表示动画结束时的角度。

另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y 坐标的开始位置pivotXValue、pivotYValue等。






ScaleAnimation

代码:
    //初始化  
    Animation scaleAnimation = new ScaleAnimation(0.1f, 1.0f,0.1f,1.0f);  
    //设置动画时间  
    scaleAnimation.setDuration(500);  
                    this.startAnimation(scaleAnimation);  

ScaleAnimation类中

第一个参数fromX ,第二个参数toX:分别是动画起始、结束时X坐标上的伸缩尺寸。

第三个参数fromY ,第四个参数toY:分别是动画起始、结束时Y坐标上的伸缩尺寸。

另外还可以设置伸缩模式pivotXType、pivotYType, 伸缩动画相对于x,y 坐标的开始位置pivotXValue、pivotYValue等。



TranslateAnimation
    //初始化  
    Animation translateAnimation = new TranslateAnimation(0.1f, 100.0f,0.1f,100.0f);  
    //设置动画时间                translateAnimation.setDuration(1000);  
                                this.startAnimation(translateAnimation);  

TranslateAnimation类



第一个参数fromXDelta ,第二个参数toXDelta:分别是动画起始、结束时X坐标。

第三个参数fromYDelta ,第四个参数toYDelta:分别是动画起始、结束时Y坐标。
  • 大小: 30 KB
分享到:
评论

相关推荐

    android动画例子:tween animation and property animation

    本文将深入探讨两种主要的Android动画类型:Tween Animation(平滑动画)和Property Animation(属性动画)。这两种技术都能为应用程序带来生动和交互性的效果,但它们的工作原理和应用场景有所不同。 **Tween ...

    Android基础——Tween动画、Drawable动画、Property动画、MaterialDesign动画、Trasition动画

    Tween动画是Android中最基础的动画形式,它通过改变对象的透明度、大小、位置或旋转等属性来实现平滑的过渡效果。Tween动画通过`Animation`类及其子类如`TranslateAnimation`、`ScaleAnimation`、`RotateAnimation`...

    Android 游戏开发之Tween动画的实现

    它是Android动画系统中的一个重要组件,用于执行基于属性的动画。通过`ObjectAnimator.ofFloat()`或`ObjectAnimator.ofInt()`方法,我们可以指定目标对象和要动画化的属性。例如,要让一个View平滑地移动,可以创建...

    Android xml形式实现Tween动画

    本篇将详细讲解如何使用XML在Android中实现这四种Tween动画以及集合动画。 1. **Alpha渐变动画** Alpha动画用于控制View的透明度变化。在`res/anim`目录下创建一个XML文件,例如`alpha_animation.xml`,然后定义...

    安卓动画效果相关-android开发中的Tween动画动画演示demo。此demo为androidstudio2.0所写.rar

    通过学习和实践这个Tween动画的演示demo,开发者可以深入理解Android动画机制,为自己的应用增添生动有趣的交互体验。同时,也可以在此基础上探索更高级的动画技术,如属性动画(Property Animation)和视图动画...

    Android动画之Tween动画实现

    一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变);第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。 本例子主要实现了Tweene动画,实现了...

    android Tween动画的xml实现

    Tween动画,又称补间动画,是Android提供的基础动画类型,主要用于对象的平移、旋转、缩放和透明度变化等效果。本篇文章将深入探讨如何通过XML在Android中实现Tween动画。 首先,让我们了解Tween动画的基本原理。...

    Android---Tween动画

    Android---Tween动画 运用了4种Tween的动画效果,包括: rotate(旋转),scale(伸缩), alpha(透明度),translate(平移) 以及tween(综合4种效果)

    android tween动画代码示例及详解

    Tween动画,又称补间动画,是Android提供的基础动画系统,用于在两个关键帧之间平滑地改变对象的属性,如透明度、大小、位置或旋转角度。在本文中,我们将深入探讨如何使用Android Tween动画,并通过具体的代码示例...

    Android Tween动画源码

    Tween动画,又称平移动画,是Android提供的基础动画类型,主要用于对象的透明度、缩放、平移和旋转等属性的变化。让我们深入探讨Android Tween动画的源码,理解其工作原理。 首先,`alpha`动画涉及到的是对象的透明...

    android Tween动画

    Tween动画,又称为补间动画,是Android提供的基础动画系统的一部分,用于实现对象在指定时间内从一个状态平滑过渡到另一个状态的效果。本文将深入探讨Tween动画的四个基本效果:移动、缩放、旋转和透明化,并提供...

    Android中补间动画TweenAnimation

    在Android开发中,补间动画(Tween Animation)是动画系统的一部分,用于实现对象在屏幕上位置、大小、透明度等属性的变化。补间动画基于帧,通过连续改变对象属性来创建平滑过渡效果,使得视觉上产生动画的效果。...

    如何在Android中实现图片及动画的缩放和旋转

    Android 动画有两种:Tween Animation 和 Frame Animation。本文主要介绍 Tween Animation 的实现, Tween Animation 是对视图对象中的内容进行一系列简单的转换,比如位置的移动,大小的缩放,旋转,透明度的变化...

    Android Animation动画(Tween动画,xml形式)

    该Demo,主要以xml形式实现了Animation动画中的Tween动画(另一种动画Frame动画Demo,稍后奉上),Tween动画的另一种实现形式是直接在代码中实现,相关Demo已上传,有需要的读者请到我的资源文件中下载即可。

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

    在Android开发中,动画是提升用户体验的关键因素之一。补间动画(Tween Animation)是Android提供的基本动画类型,它通过对对象的透明度、大小、位置或...不断实践和探索,将有助于我们成为更出色的Android动画开发者。

    Android中Frame和Tween两类动画笔记源码

    Android提供了两种主要类型的动画:Frame Animation(帧动画)和Tween Animation(补间动画)。本篇将深入探讨这两种动画的原理、使用方式以及源码分析。 **一、Frame Animation(帧动画)** 帧动画类似于传统的...

    简单的Android动画(Frame&Tween)

    Android提供了多种动画实现方式,其中最基础的是Frame动画和Tween动画。本篇文章将详细讲解这两种动画机制及其应用。 **Frame动画** Frame动画,也称为序列帧动画,是通过显示一系列连续的静态图像来创建动态效果...

    Tween和Frame动画的一个小总结

    在Android中,Tween动画可以通过XML文件定义,并在代码中加载和执行。例如,以下是一个Tween动画的示例: ```xml &lt;set xmlns:android="http://schemas.android.com/apk/res/android" android:shareInterpolator=...

    Tween动画完全解析

    在Android开发中,Android SDK提供了Tween动画的支持,位于`android.view.animation`包下,包含如TranslateAnimation、ScaleAnimation、AlphaAnimation等类,分别用于处理平移、缩放和透明度的变化。 对于一个Tween...

Global site tag (gtag.js) - Google Analytics