`

Android中使用animation的方法

阅读更多
Android中使用animation的方法

在Android中,分别可以在xml中定义Animation,也可以在程序代码中定义,
下面的小例子是利用RotateAnimation简单展示一下两种方法的用法,对于其他动画,如ScaleAnimation,AlphaAnimation,原理是一样的。


方法一:在xml中定义动画:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
       
<rotate
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:fromDegrees="0"
        android:toDegrees="+360"
        android:duration="3000" />
       
<!-- rotate 旋转动画效果
       属性:interpolator 指定一个动画的插入器,用来控制动画的速度变化
        fromDegrees 属性为动画起始时物件的角度   
        toDegrees   属性为动画结束时物件旋转的角度,+代表顺时针
        duration  属性为动画持续时间,以毫秒为单位
-->
</set>

使用动画的Java代码,程序的效果是点击按钮,TextView旋转一周:
package com.ray.animation;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.Button;
import android.widget.TextView;

public class TestAnimation extends Activity implements OnClickListener{
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn = (Button)findViewById(R.id.Button01);
        btn.setOnClickListener(this);    
    }

@Override
public void onClick(View v) {
Animation anim = AnimationUtils.loadAnimation(this, R.anim.my_rotate_action);
findViewById(R.id.TextView01).startAnimation(anim);
}
}

方法二:直接在代码中定义动画(效果跟方法一类似):
package com.ray.animation;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.widget.Button;

public class TestAnimation extends Activity implements OnClickListener{

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button btn = (Button)findViewById(R.id.Button);
        btn.setOnClickListener(this);    
    }

public void onClick(View v) {
Animation anim = null;
anim = new RotateAnimation(0.0f,+360.0f);
anim.setInterpolator(new AccelerateDecelerateInterpolator());
anim.setDuration(3000);
findViewById(R.id.TextView01).startAnimation(anim);
}
}


补充说明:
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坐标上的伸缩尺寸  
/*说明:
                    以上四种属性值   
                    0.0表示收缩到没有
                    1.0表示正常无伸缩     
                    值小于1.0表示收缩  
                    值大于1.0表示放大
*/
//第五个参数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 等等添加一个动画效果

public void startAnimation (Animation animation)
分享到:
评论

相关推荐

    Android中的Animation的使用

    本篇将详细介绍Android中的Animation使用,结合源码分析,以及一些实用工具的运用。 一、帧动画 帧动画是通过连续播放一系列图片来实现动画效果,常用于实现类似GIF的效果。在Android中,我们可以通过`&lt;animation-...

    Android View中添加Animation.rar

    `Android View中添加Animation.rar`这个压缩包文件很可能是包含了一些示例代码或教程,帮助开发者了解如何在Android的视图元素上添加动画效果。这里我们将深入探讨Android中的View动画机制,包括基本动画类型、如何...

    Android ViewFlipper Animation 使用

    本篇文章将详细探讨如何在Android应用程序中使用ViewFlipper以及如何实现动画效果。 首先,我们需要了解ViewFlipper的基本概念。ViewFlipper是LinearLayout的子类,它可以包含多个子视图,并在需要时显示其中一个。...

    Android的动画animation

    2. **Java代码实现**:在代码中创建Animation对象,然后设置相应的属性,并调用视图的startAnimation()方法来启动动画。例如,创建一个平移动画的Java代码如下: ```java TranslateAnimation animation = new ...

    android中的动画(Animation)详解

    在Android开发中,动画是提升用户体验的关键因素之一。Android提供了两种主要的动画类型:帧动画和补间动画,这两种动画各有特点,适用于不同的场景。 **帧动画**是基于一系列连续图像播放来创建动画效果的方法。这...

    安卓Android源码——View中添加Animation.zip

    2. **加载动画**:在代码中使用`AnimationUtils.loadAnimation()`方法加载XML动画资源。 3. **应用动画**:调用View的`startAnimation()`方法,将动画应用到特定的View上。 四、源码分析 资源包中的"源码说明.txt...

    android的ViewPager和Animation的一些使用

    这篇博客"android的ViewPager和Animation的一些使用"详细介绍了如何在应用中有效地结合这两个组件,以提升用户体验。 首先,`ViewPager`是Android SDK中的一个视图容器,它允许用户通过水平滑动来浏览多个页面。`...

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

    总结,Android的自定义`Animation`动画是通过继承`Animation`类并重写相关方法来实现的,它可以为View创建各种动态效果。然而,随着Android版本的更新,属性动画成为更推荐的选择,因为它提供了更强大、更灵活的动画...

    android中Animation的简单应用实例

    本文将深入探讨Android中的`Animation`类及其简单应用实例,旨在帮助初学者理解如何使用各种动画方法。 一、Animation概述 Android提供了两种主要类型的动画:补间动画(Tween Animation)和帧动画(Frame ...

    Android的动画Animation详解

    #### 三、动画的使用方法 1. **定义动画XML文件** - 在`res/anim`目录下创建XML文件。 - 编写上述动画类型的XML代码。 2. **加载并应用动画** - 通过`AnimationUtils.loadAnimation()`方法加载动画。 - 使用`...

    Android代码-View中添加Animation.zip

    视图动画是Android早期版本(API Level 11及以下)中使用的主要动画系统。它并不真正改变`View`的属性,而是在屏幕上模拟动画效果。视图动画主要包括以下几种: 1. **TranslateAnimation**: 实现`View`的平移效果,...

    Android动画源码 Animation

    在Android中,可以使用` RotateAnimation `类来实现这种效果,或者通过属性动画来更精细地控制翻转过程。 最后,`BAnim_ListViewLibrary`很可能包含了针对ListView的动画效果。在ListView滚动时,添加适当的动画...

    android动画例子:tween animation and property animation

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

    Android 动画 Animation Demo

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

    Android Animation Demo

    `Android Animation Demo`是一个实例,它展示了如何在Android应用中实现各种动画效果。这篇详细讲解将围绕标题和描述中的知识点展开,包括Tween Animation(补间动画)和Frame Animation(帧动画),帮助开发者理解...

    android gallery和Animation组合使用, 看美女美图

    在Android开发中,`Gallery`组件和`Animation`的结合使用可以为用户界面带来丰富的交互体验,特别是用于展示图片如“美女美图”这样的应用场景。`Gallery`是Android提供的一个可滚动视图,允许用户水平浏览项目集合...

    Android 属性动画(Property Animation)

    通过深入理解和熟练使用`ValueAnimator`、`ObjectAnimator`和`AnimatorSet`,以及相关的辅助类,你可以在Android应用中实现各种复杂的动画效果。如果你在使用过程中遇到问题,可以通过提供的博客链接获取更多信息,...

    Android动画之Animation

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

Global site tag (gtag.js) - Google Analytics