本篇介绍如何用配置文件进行控件的动画设置。步骤如下:
1. 在res目录下建立anim目录
2. 在anim目录下创建动画的xml文件
3. 通过AnimationUtils这个类加载动画的xml文件
4. 给你需要的控件绑定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.AnimationUtils;
import android.widget.ImageView;
public class AnimationDemo extends Activity {
private ImageView img;
private int flag = 0;
/** 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);
img.setOnClickListener(new ImgOnClickListenr());
}
class ImgOnClickListenr implements OnClickListener{
@Override
public void onClick(View v) {
switch (flag) {
case 0:
// 加载动画的配置文件
Animation alphaAnimation = AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.alpha);
// 调用animation
img.startAnimation(alphaAnimation);
flag++;
break;
case 1:
Animation rotateAnimation = AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.rotate);
img.startAnimation(rotateAnimation);
flag++;
break;
case 2:
Animation scaleAnimation = AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.back_scale);
img.startAnimation(scaleAnimation);
flag++;
break;
case 3:
Animation translateAnimation = AnimationUtils.loadAnimation(AnimationDemo.this, R.anim.translate);
img.startAnimation(translateAnimation);
flag = 0;
default:
break;
}
}
}
}
这里举个配置文件说明一下,代码如下:
<?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="1.0"
android:toYScale="1.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"/>
</set>
注意这边的piovtX属性后面跟的值,因为scale缩放时,轴心的位置相对于控件的位置有三种:
1. 当你写50时,它是采用的absolute去取轴心的位置
2. 当你写50%时,它是采用的RELATIVE_TO_SELF去取轴心的位置
3. 当你写50%p时,它是采用的RELATIVE_TO_PARENT去取轴心的位置
好了就写到这里吧。
分享到:
相关推荐
• 2、《Animation动画详解(二)——Interpolator插值器》 • 3、《Animation动画详解(三)—— 代码生成alpha、scale、translate、rotate、set及插值器动画》 • 4、《Animation动画详解(四)——ValueAnimator...
在Unity引擎中,动画实例化(Animation Instancing)是一种优化技术,特别适用于处理大量游戏角色同时出现的场景,如大规模战斗或人群模拟。这种技术能够显著提高游戏性能,降低Draw Call,减少GPU负担,从而实现流畅...
二、动画关键帧 在实现翻页效果时,我们通常会用到CSS3的`@keyframes`规则,它定义了动画从开始到结束的各个阶段样式。例如,一个简单的翻页动画可能包括以下关键帧: ```css @keyframes flipPage { 0% { ...
**二、动画属性详解** 1. **animation-name**: 指定动画的名称,对应于@keyframes规则定义的动画。 2. **animation-duration**: 定义动画完成一个周期所需的时间,决定了动画的速度。 3. **animation-timing-...
二、创建自定义Animation 要创建自定义`Animation`,首先需要继承`Animation`类,并重写以下几个关键方法: 1. `applyTransformation(float interpolatedTime, Transformation t)`: 这个方法在动画每一帧时被调用,...
- **案例二**:创建更复杂的动画,例如翻页效果、弹出菜单等,展示如何将多种动画效果组合起来。 - **案例三**:实现自定义视图动画,通过编写代码控制动画的每一帧,实现高度定制化的动画效果。 4. **高级主题**...
《TVP Animation 10 Pro:打造专业动画的利器》 在数字艺术的世界里,动画制作软件扮演着至关重要的角色,而TVP Animation 10 Pro正是这样一款强大的工具,它以其独特的魅力和易用性,深受动画制作者的喜爱。这款...
SVG是一种标记语言,用于描述二维图形和图像,支持清晰的文字渲染、精确的形状绘制以及复杂的渐变和滤镜效果。这种技术在网页设计和开发中越来越受欢迎,因为它允许图形在不同分辨率的设备上保持清晰,同时提供了...
二、自定义Animation 继承`Animation`类可以创建自定义动画,我们需要重写以下关键方法: 1. `applyTransformation(float interpolatedTime, Transformation t)`: 这个方法在动画的每一帧被调用,interpolatedTime...
**二、动画属性详解** 1. **animation-name**: 指定动画的名称,与`@keyframes`中的定义相对应。 2. **animation-duration**: 定义动画的总时长。 3. **animation-timing-function**: 描述动画速度曲线,如`linear`...
Core Animation是苹果操作系统中最核心的动画技术之一,用于在iOS和macOS平台上创建流畅、高性能的视觉效果。在本文中,我们将深入探讨Core Animation的基础知识,包括它的核心概念、工作原理以及如何创建动画。 ...
二、补间动画 补间动画改变对象在一定时间内的位置、大小、透明度等属性,通过补间插值计算出中间状态。主要有旋转( RotateAnimation )、平移( TranslateAnimation )、缩放( ScaleAnimation )和透明度( ...
**二、ScaleAnimation(缩放动画)** ScaleAnimation改变视图的大小,通过fromXScale、toXScale、fromYScale和toYScale设置X轴和Y轴的缩放比例。例如,一个逐渐放大视图的动画可以这样定义: ```java ...
二、Animation的种类 1. TranslateAnimation:平移动画,用于改变View的x和y坐标。 2. RotateAnimation:旋转动画,可以围绕任意轴进行旋转。 3. ScaleAnimation:缩放动画,可以改变View的宽度和高度。 4. ...
二、关键特性 1. **关键帧动画**:允许开发者通过设置特定时间点的对象状态(位置、旋转、缩放)来创建平滑的过渡效果。 2. **骨骼动画**:支持多关节角色的动画,通过绑定骨骼和模型网格,可以实现细腻的人物动作...