`
landyer
  • 浏览: 141887 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android Animation Tween动画效果的使用

 
阅读更多

Animation Tween动画可以通过java代码实现,也可以通过xml布局来实现

1.通过java代码实现:

 

package com.Aina.Android;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.view.KeyEvent;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;

/**
 * com.Aina.Android Pro_AnimationTween
 * 
 * @author Aina.huang E-mail: 674023920@qq.com
 * @version 创建时间:2010 Jun 17, 2010 5:15:36 PM 类说明
 */
public class GameView extends View {

	private Paint mPaint = null;
	private Animation mAlphaAnimation = null;
	private Animation mScaleAnimation = null;
	private Animation mTranslateAnimation = null;
	private Animation mRotateAnimation = null;
	private Bitmap mBitmap = null;

	public GameView(Context context) {
		super(context);
		mBitmap = ((BitmapDrawable) this.getResources().getDrawable(
				R.drawable.img)).getBitmap();
	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		mPaint = new Paint();
		mPaint.setAntiAlias(true);
		canvas.drawBitmap(mBitmap, 0, 0, mPaint);
	}

	public boolean onKeyDown(int keyCode, KeyEvent event) {
		switch (keyCode) {
		case KeyEvent.KEYCODE_DPAD_UP:
			mAlphaAnimation = new AlphaAnimation(0.1f, 1.0f);// 透明度
			mAlphaAnimation.setDuration(3000);
			this.startAnimation(mAlphaAnimation);
			break;
		case KeyEvent.KEYCODE_DPAD_DOWN:
			mScaleAnimation = new ScaleAnimation(0.0f, 1.0f, 0.0f,
					1.0f,// 整个屏幕就0.0到1.0的大小//缩放
					Animation.RELATIVE_TO_SELF, 0.5f,
					Animation.RELATIVE_TO_SELF, 0.0f);
			mScaleAnimation.setDuration(3000);
			this.startAnimation(mScaleAnimation);
			break;
		case KeyEvent.KEYCODE_DPAD_LEFT:
			mTranslateAnimation = new TranslateAnimation(0, 100, 0, 100);// 移动
			mTranslateAnimation.setDuration(2000);
			this.startAnimation(mTranslateAnimation);
			break;
		case KeyEvent.KEYCODE_DPAD_RIGHT:
			mRotateAnimation = new RotateAnimation(0.0f, 360.0f,//旋转
					Animation.RELATIVE_TO_SELF, 0.5f,
					Animation.RELATIVE_TO_SELF, 0.5f);
			mRotateAnimation.setDuration(3000);
			this.startAnimation(mRotateAnimation);
			break;
		default:
			break;
		}
		return super.onKeyDown(keyCode, event);
	}
}





package com.Aina.Android;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;

public class Test_AnimationTween extends Activity {
    /** Called when the activity is first created. */
	private GameView gv = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        gv = new GameView(this);
        this.setContentView(gv);
    }
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		return gv.onKeyDown(keyCode, event);
	}
    
}

 

 

2.通过xml布局实现:

 

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




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




<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
	<translate android:fromXDelta="0" android:toXDelta="100"
		android:fromYDelta="0" android:toYDelta="100" android:duration="3000">
	</translate>
</set>




<?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:pivotX="50%"
		android:pivotY="50%" android:duration="3000">
	</rotate>
</set>
 

package com.Aina.Android;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.view.KeyEvent;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;

/**
 * com.Aina.Android Pro_AnimationTween
 * 
 * @author Aina.huang E-mail: 674023920@qq.com
 * @version 创建时间:2010 Jun 17, 2010 5:15:36 PM 类说明
 */
public class GameView extends View {

	private Paint mPaint = null;
	private Animation mAlphaAnimation = null;
	private Animation mScaleAnimation = null;
	private Animation mTranslateAnimation = null;
	private Animation mRotateAnimation = null;
	private Bitmap mBitmap = null;
	private Context mContext = null;
	public GameView(Context context) {
		super(context);
		mContext = context;
		mBitmap = ((BitmapDrawable) this.getResources().getDrawable(
				R.drawable.img)).getBitmap();
	}

	@Override
	protected void onDraw(Canvas canvas) {
		super.onDraw(canvas);
		mPaint = new Paint();
		mPaint.setAntiAlias(true);
		canvas.drawBitmap(mBitmap, 0, 0, mPaint);
	}

	public boolean onKeyDown(int keyCode, KeyEvent event) {
		switch (keyCode) {
		case KeyEvent.KEYCODE_DPAD_UP:
//			mAlphaAnimation = new AlphaAnimation(0.1f, 1.0f);// 透明度
//			mAlphaAnimation.setDuration(3000);
			mAlphaAnimation = AnimationUtils.loadAnimation(mContext, R.anim.alpha);
			this.startAnimation(mAlphaAnimation);
			break;
		case KeyEvent.KEYCODE_DPAD_DOWN:
//			mScaleAnimation = new ScaleAnimation(0.0f, 1.0f, 0.0f,
//					1.0f,// 整个屏幕就0.0到1.0的大小//缩放
//					Animation.RELATIVE_TO_SELF, 0.5f,
//					Animation.RELATIVE_TO_SELF, 0.0f);
//			mScaleAnimation.setDuration(3000);
			mScaleAnimation = AnimationUtils.loadAnimation(mContext, R.anim.scale);
			this.startAnimation(mScaleAnimation);
			break;
		case KeyEvent.KEYCODE_DPAD_LEFT:
//			mTranslateAnimation = new TranslateAnimation(0, 100, 0, 100);// 移动
//			mTranslateAnimation.setDuration(2000);
			mTranslateAnimation = AnimationUtils.loadAnimation(mContext, R.anim.translate);
			this.startAnimation(mTranslateAnimation);
			break;
		case KeyEvent.KEYCODE_DPAD_RIGHT:
//			mRotateAnimation = new RotateAnimation(0.0f, 360.0f,//旋转
//					Animation.RELATIVE_TO_SELF, 0.5f,
//					Animation.RELATIVE_TO_SELF, 0.5f);			
//			mRotateAnimation.setDuration(3000);
			mRotateAnimation = AnimationUtils.loadAnimation(mContext, R.anim.rotate);
			this.startAnimation(mRotateAnimation);
			break;
		default:
			break;
		}
		return super.onKeyDown(keyCode, event);
	}
}
 

 

 

 

 

分享到:
评论

相关推荐

    Android使用TweenAnimation生成动画效果的例程.rar

    在这个例程中,我们将深入探讨如何在Android应用中使用TweenAnimation创建动画效果。 首先, TweenAnimation是基于View的动画,它不涉及任何帧率控制,而是通过改变View的属性来实现动画。主要有以下四种类型的...

    Android Tween Animation动画效果详解

    Android Tween Animation动画的使用demo,以及自定义动画,原理解析,相关博客: http://blog.csdn.net/w18756901575/article/details/53081551

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

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

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

    Tween动画是Android系统提供的一种基础动画类型,主要用于对象的平移、缩放、旋转和透明度变化等视觉效果。本篇将详细探讨Android Tween动画的基本原理、实现方式以及如何在Android Studio 2.0中创建和运行演示demo...

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

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

    Android Tween动画源码

    此外,Android还提供了`AnimationSet`类,可以组合多个Tween动画,让它们同时或按顺序执行,从而实现更复杂的动画效果。 总的来说,Android Tween动画的源码解析涉及到了动画的基本操作,如透明度、缩放、平移和...

    android Tween动画的xml实现

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

    Android TweenAnimation源码

    TweenAnimation是Android SDK中提供的一种基础动画类型,它基于帧动画(Frame Animation)的概念,通过平移、旋转、缩放和改变透明度等属性来实现对象的变化效果。让我们深入探索Android TweenAnimation的源码,了解...

    animation Tween 动画

    Tween动画是由`Animation`类的子类实现的,如`AlphaAnimation`、`TranslateAnimation`、`ScaleAnimation`和`RotateAnimation`,分别对应透明度变化、位移、缩放和旋转这四种基本动画效果。 1. **AlphaAnimation**:...

    tween动画效果

    在Android中,Tween动画主要通过`Animation`类的子类来实现,包括`TranslateAnimation`(平移动画)、`ScaleAnimation`(缩放动画)、`RotateAnimation`(旋转动画)和`AlphaAnimation`(透明度动画)。这些类提供了...

    android tween动画代码示例及详解

    在本文中,我们将深入探讨如何使用Android Tween动画,并通过具体的代码示例进行详解。 首先,我们来看`alpha`动画,它用于改变视图的透明度。Alpha动画的实现主要使用`AlphaAnimation`类。以下是一个简单的示例: ...

    android Animation动画实现loading效果

    Android Animation系统提供了多种动画类型,包括属性动画(Property Animation)、补间动画(Tween Animation)和帧动画(Frame Animation)。属性动画是Android 3.0(API Level 11)引入的,它允许对对象的任何属性...

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

    总之,Tween动画是Android游戏开发中的重要工具,通过合理使用`ObjectAnimator`和`AnimatorSet`,我们可以创造出丰富多样的视觉效果,提升游戏体验。在实践中,还需要根据具体的游戏场景和需求,灵活调整动画参数,...

    Tween动画完全解析

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

    android Tween动画示例代码

    文件名"xh_05_15_Test"可能包含了这些示例代码的详细实现,你可以通过查看这个文件来深入了解和学习Android Tween动画的使用。 总之,Android Tween动画是提升用户体验的重要工具,通过巧妙地运用这些动画,开发者...

    01_TweenAnimation变化动画Demo代码下载

    TweenAnimation在Android开发中是一种常见的动画技术,用于创建平滑的过渡效果,它可以改变View对象的属性,如位置、大小、透明度等,为用户界面增添动态美感。本Demo代码下载提供了关于TweenAnimation的实例,帮助...

    android动画例子:tween animation and property animation

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

    Tween 动画的旋转缩放透明度和平移 demo

    在“Tween动画的旋转缩放透明度和平移 demo”项目中,开发者可能通过两种方式来实现这些效果:一种是通过XML文件(如Android的animator资源文件)预先定义动画,然后在代码中引入执行;另一种是直接在代码中创建和...

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

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

    Android 抖动动画效果

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

Global site tag (gtag.js) - Google Analytics