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

Android旋转动画

 
阅读更多
第一种:
代码继承Animation实现
package com.iaiai.an;

import android.graphics.Matrix;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.Transformation;

/**
 * 
 * <br/>
 * Title: WindowAnimation.java<br/>
 * E-Mail: 176291935@qq.com<br/>
 * QQ: 176291935<br/>
 * Http: iaiai.iteye.com<br/>
 * Create time: 2013-8-27 上午10:22:22<br/>
 * <br/>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class WindowAnimation extends Animation {

	private int halfWidth;
	private int halfHeight;
	private int duration;

	public WindowAnimation(int duration) {
		this.duration = duration;
	}

	@Override
	protected void applyTransformation(float interpolatedTime, Transformation t) {
		super.applyTransformation(interpolatedTime, t);
		Matrix matrix = t.getMatrix();
//		matrix.preScale(interpolatedTime, interpolatedTime);
		matrix.preRotate(interpolatedTime * 360); // 进行旋转
		matrix.preTranslate(-halfWidth, -halfHeight); // 改变动画的起始位置,把扩散点和起始点移到中间
		matrix.postTranslate(halfWidth, halfHeight);
	}

	@Override
	public void initialize(int width, int height, int parentWidth, int parentHeight) {
		super.initialize(width, height, parentWidth, parentHeight);
		this.setDuration(duration);
		this.setFillAfter(true);
		this.halfHeight = height / 2;
		this.halfWidth = width / 2;
		this.setInterpolator(new LinearInterpolator());
	}

}


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		final Animation animation = new WindowAnimation(1000);
		animation.setRepeatCount(-1);	//执行多少次
		
		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				findViewById(R.id.imageView1).setAnimation(animation);
				animation.start();
			}
		});
	}



第二种:
在xml中配置
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <rotate
        android:duration="1000"
        android:fromDegrees="0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="-1"
        android:shareInterpolator="true"
        android:toDegrees="+360" />
    <!--
rotate 旋转动画效果    
repeatCount 旋转次数
===========================
interpolator 指定一个动画的插入器,用来控制动画的速度变化   
AccelerateInterpolator:动画开始时比较慢,然后逐渐加速。
DecelerateInterpolator:动画开始时比较快,然后逐渐减速。
AccelerateDecelerateInterpolator:动画开始时和结束时比较慢,中间过程加速。
LinearInterpolator:动画匀速进行。
CycleInterpolator:动画循环播放指定次数,速率沿着正弦曲线改变。)
=============================
fromDegrees 属性为动画起始时物件的角度     
toDegrees 属性为动画结束时物件旋转的角度,+代表顺时针    
duration 属性为动画持续时间,以毫秒为单位
pivotX/pivotY 属性为动画旋转中心位置
shareInterpolator 


    -->

</set>


	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		final Animation animation = (AnimationSet) AnimationUtils.loadAnimation(this, R.anim.xz);
		
		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				findViewById(R.id.imageView1).setAnimation(animation);
				animation.start();
			}
		});
	}
分享到:
评论

相关推荐

    android旋转动画

    通过上述内容,你应该对Android旋转动画有了深入理解,并掌握了如何在低版本Android设备上使用NineOldAndroids库来实现旋转动画。在实际开发中,可以根据需求调整动画参数,创造更多有趣的动态效果。

    安卓动画效果相关-基于android旋转动画做的摇晃铃铛的动画效果代码很简单注释很简单可直接集成在项目中非常好用.rar

    这个压缩包文件提供的内容是一个基于Android旋转动画实现的摇晃铃铛的特效。这种动画效果可以让应用的交互更加生动有趣,适用于游戏、教育或者通知提示等场景。下面我们将详细探讨如何在Android中创建这样的旋转动画...

    android 旋转动画源码.rar

    下面我们将详细探讨Android旋转动画的实现原理和相关知识点。 首先,Android提供了两种主要的动画机制:属性动画(Property Animation)系统和视图动画(View Animation)系统。属性动画系统自API 11(Android 3.0 ...

    Android 旋转动画-IT计算机-毕业设计.zip

    在Android应用开发中,旋转动画是一种常见的视觉效果,用于给用户带来动态的交互体验。这份“Android 旋转动画-IT计算机-毕业设计.zip”资源包含了关于Android应用源码的示例,非常适合毕业设计或者论文研究,它能...

    Android旋转菜单动画

    在提供的`CustomView_Youku`文件中,可能包含了实现这一功能的源代码示例,你可以通过学习和分析这个代码,更深入地理解Android旋转动画的实现细节。通过这样的实践,你将能够熟练地为自己的应用添加各种动态效果,...

    旋转动画的Demo

    总之,这个"旋转动画的Demo"为你提供了一个实践和研究Android旋转动画的平台,无论是属性动画还是视图动画,都能帮助你掌握如何在Android应用中创建丰富的动态效果。通过深入研究和实践,你将能够自如地运用这些技巧...

    android自定义ImageView实现旋转动画

    本文将深入探讨如何通过自定义ImageView来实现旋转动画,让图片在XYZ轴上动态展示,为用户带来更加生动的视觉效果。 首先,我们需要创建一个新的类,继承自Android的内置ImageView类。这个新类将作为我们自定义的...

    android360度3D旋转动画

    在Android开发中,360度3D旋转动画是一种常用且引人注目的视觉效果,可以为用户界面增添动态感和交互性。本教程将深入探讨如何实现这种效果,通过提供的"RotateDemo"代码示例,你可以直接运行并学习。 首先,让我们...

    Android中用xml配置旋转动画项目的要求说明.pdf

    针对"Android中用xml配置旋转动画项目的要求说明",我们将详细讲解如何在Android应用中创建一个使用XML定义的旋转动画。 首先,我们需要明白旋转动画(Rotation Animation)的基本概念。旋转动画是Android动画框架...

    旋转动画.zip

    下面将详细讲解Android旋转动画的相关知识点。 Android提供了两种主要类型的动画:属性动画(Property Animation)和视图动画(View Animation)。属性动画系统自Android 3.0(API级别11)引入,它允许对对象的任意...

    Android编程实现RotateAnimation设置中心点旋转动画效果

    本文实例讲述了Android编程实现RotateAnimation设置中心点旋转动画效果。分享给大家供大家参考,具体如下: 在xml设置: &lt;?xml version=1.0 encoding=utf-8?&gt; &lt;rotate xmlns:android=...

    旋转动画.zip项目安卓应用源码下载

    这个"旋转动画.zip"项目源码提供了关于Android旋转动画的实现,对于学生进行毕业设计、个人学习或者公司开发项目都有很大的参考价值。接下来,我们将深入探讨Android动画系统以及如何创建旋转动画。 Android动画...

    Android Tween动画之RotateAnimation实现图片不停旋转效果实例介绍

    Android 平台提供了两类动画,一类是 Tween 动画,即通过对场景里的对象不断做图像变换(平移、缩放、旋转)产生动画效果;第二类是 Frame 动画,即顺序播放事先做好的图像,跟电影类似。本文分析 Tween动画的rotate...

    Android自定义动画 3D旋转

    例如,我们可以使用ObjectAnimator.ofFloat()方法,传入要旋转的对象、旋转的属性(如"rotationX"或"rotationY")、起始值和结束值,来创建一个3D旋转动画。 以下是一个简单的3D旋转动画示例: ```java ...

    Android项目 Rotatable-master旋转动画

    "Android项目 Rotatable-master旋转动画"是一个专门用于实现3D旋转效果的开源项目,适用于那些希望在应用程序中添加动态旋转效果的开发者。该项目提供了简单易用的API,使得开发者能够轻松地将旋转动画集成到自己的...

    旋转动画.zip安卓程序源码资源下载

    在Android开发中,动画是提升用户体验的关键因素之一。这个"旋转动画.zip"资源包提供了一套用于Android程序的源码示例,旨在帮助学生、程序员...通过调试和修改代码,你可以亲手实践和掌握Android旋转动画的实现技巧。

    Android 各种旋转动画的ImageView-IT计算机-毕业设计.zip

    "Android各种旋转动画的ImageView"这个项目主要探讨了如何在Android平台上实现ImageView的旋转动画效果。在毕业设计或论文中,这样的实践能够展示对移动应用交互设计的理解和技术实现能力。以下是关于这个主题的一些...

    Android抖动动画效果(上下抖和以角旋转)

    在Android开发中,动画效果是提升用户体验的重要手段之一。...通过以上内容,你应该对Android中如何实现抖动和旋转动画有了清晰的理解。结合实际应用场景,灵活运用这些动画效果,可以使你的应用更具活力和吸引力。

    旋转动画实现自定义的ProgressDialog

    本教程将深入探讨如何使用旋转动画来创建一个自定义的ProgressDialog,以提供更吸引人的用户体验。 首先,让我们理解ProgressDialog的基本用法。ProgressDialog继承自Dialog类,它通常包含一个可旋转的菊花图标和一...

Global site tag (gtag.js) - Google Analytics