`
苹果超人
  • 浏览: 201026 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Animation(三)

 
阅读更多
  继续上篇的animation,本篇用到的是AnimationListener,参考自iteye上的一个朋友的翻牌动画。AnimationListener主要是用来监听animation的,它接受animation的通知,每个通知声明了一个相关的事件。话不多说,上代码:
package com.kevin.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.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.widget.ImageView;

public class AnimationDemo extends Activity {
	private ImageView img;
	private boolean isFront = false;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        img = (ImageView)findViewById(R.id.imageView1);
        // bind onclick event
        img.setOnClickListener(new ImgOnClickListener());
    }
    class ImgOnClickListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			// load back animation  config
			Animation animation = AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.back_scale);
			// bind AnimationListener
			animation.setAnimationListener(new AnimationListener() {	
				// Notifies the start of the animation.
				@Override
				public void onAnimationStart(Animation animation) {
					System.out.println("onAnimationStart.");
				}
				// Notifies the repetition of the animation.
				@Override
				public void onAnimationRepeat(Animation animation) {
					System.out.println("onAnimationRepeat");
				}
				// Notifies the end of the animation.
				@Override
				public void onAnimationEnd(Animation animation) {
					System.out.println("onAnimationEnd");
					if(isFront){
						img.setImageResource(R.drawable.back);
						isFront = false;
					}else{
						img.setImageResource(R.drawable.front);
						isFront = true;
					}
					// load front animation config
					img.setAnimation(AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.front_scale));				
				}
			});
			// invoke animation immediately
			img.startAnimation(animation);
		}
    	
    }
}
分享到:
评论

相关推荐

    Animation三维动画设计基础pdf

    《Animation三维动画设计基础》是一本深入探讨三维动画制作技术的专业教材。三维动画设计是现代数字艺术中的一个重要领域,广泛应用于电影、电视、游戏、广告等多个行业。此书旨在为初学者提供一个全面理解并掌握三...

    前端大厂最新面试题-animation.docx

    实现 CSS 动画的方式有多种,常见的有 transition、transform 和 animation 三种方式。 一、transition 实现渐变动画 transition 的属性有: * property:填写需要变化的 CSS 属性 * duration:完成过渡效果需要...

    Animation动画详解 - v1.0

    • 3、《Animation动画详解(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画》 • 4、《Animation动画详解(四)——ValueAnimator基本使用》 • 5、《Animation动画详解(五)——ValueAnimator...

    CSS3-animation(动画)_Animation_css_

    CSS3(Cascading Style Sheets 第三代)是网页样式表语言,它极大地扩展了对网页元素的控制能力,其中最重要的一个特性就是引入了动画(Animation)。通过CSS3动画,开发者可以创建出丰富的交互式用户体验,使网页...

    使用animation翻页动画效果

    三、应用动画 将定义好的动画应用到元素上,我们需要设置`animation`属性。假设我们有一个用于翻页的容器元素`<div class="page"></div>`,可以这样写: ```css .page { animation-name: flipPage; animation-...

    飞机三维动画Aircraft 3D Animation

    【标题】"飞机三维动画Aircraft 3D Animation"是一个专注于3D技术的项目,它展示了飞机在三维空间中的动态效果。此项目可能是为游戏、模拟器或视觉展示设计的,利用先进的计算机图形学技术来创造逼真的飞行场景。 ...

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

    三、设置动画属性 为了使动画更具表现力,可以设置以下属性: - `setDuration(long duration)`: 设置动画的持续时间。 - `setStartOffset(long offset)`: 设置动画开始前的延迟时间。 - `setRepeatCount(int count)...

    Computer Animation, Third Edition

    接着,我们将探讨骨架动画(Skeletal Animation)技术。这是一种常见的人物动画方式,通过定义角色的骨骼结构和关节,可以实现灵活的动作控制。书中可能会详细介绍如何创建和操纵骨架,以及如何应用蒙皮权重以影响...

    CSS3 animation动画

    在这个主题中,我们将深入探讨`animation`、`transform`以及`@keyframes`这三个核心概念。 ### 1. `animation`属性 `animation`属性是一个简写属性,用于设置多个与动画相关的属性,包括`animation-name`、`...

    core animation

    - **案例三**:实现自定义视图动画,通过编写代码控制动画的每一帧,实现高度定制化的动画效果。 4. **高级主题** - **自定义动画**:介绍如何创建自定义的动画类,以便实现更加独特和个性化的动画效果。 - **...

    andorid animation

    在Android开发中,动画(Animation)是提升用户体验和交互效果的重要手段。Android提供了多种动画机制,包括属性动画(Property Animation)、视图动画(View Animation)和框架动画(Frame Animation)。这篇博客...

    Android TweenAnimation源码

    在Android开发中,动画是提升用户体验的关键因素之一。...在实际开发中,结合其他动画技术和库,如Property Animation API或第三方库如NineOldAndroids,可以进一步扩展动画的潜力,满足各种复杂的动画需求。

    C# 缓动动画类库(c# Easing animation) 及winform使用示例

    C# 缓动动画类库(c# Easing animation) 及winform使用示例 文章详见: https://blog.csdn.net/surfsky/article/details/139511866 var ani = new Animator() .AddPath(AnimationType.ExponentialEaseOut, 100, 300...

    animation动画

    属性动画包括三个主要组件:`ValueAnimator`、`ObjectAnimator`和`AnimatorSet`。 1. `ValueAnimator`是最基础的动画类,它可以改变任何可量化的值。通过设置`start()`和`end()`值,`ValueAnimator`会在两者之间...

    CSS3 animation属性制作逼真的大风车旋转动画

    例如,如果设置为3s,动画将完整执行三次秒。 3. `animation-timing-function`: 控制动画的速度曲线,可以是ease、linear、ease-in、ease-out、ease-in-out等预设值,也可以自定义函数。在大风车动画中,可能需要...

    继承Animation自定义动画

    三、使用自定义动画 创建好自定义动画后,需要将其应用到视图上。这通常通过以下步骤完成: 1. 创建自定义动画的实例。 2. 设置动画参数,如持续时间、重复次数等。 3. 调用视图的`startAnimation(Animation)`方法...

    安卓Animation实现APP引导用户点击动画

    Android Animation主要包括三种类型的动画:Property Animation、View Animation和Transition Animation。在本示例中,我们主要关注的是View Animation,它是早期版本(API Level 8及以下)中的动画机制,主要通过...

    Simulink 3D Animation

    Simulink 3D Animation 是由 MathWorks 提供的一款强大的工具包,主要用于实现三维模型的实时仿真和可视化。它允许用户在 MATLAB 和 Simulink 的环境中创建高度交互式的 3D 场景,特别适用于机械系统、机器人学、...

Global site tag (gtag.js) - Google Analytics