android构建基本XMl动画

在res下新建一个文件夹,命名为anim,创建xml文件,例如创建了一个a1.xml

<?xml version="1.0" encoding="utf-8"?>

<set xmlns:android="http://schemas.android.com/apk/res/android" >

//在这里写动画

</set>

alpha:渐变透明度效果

rotate:旋转动画效果

scale:伸缩动画效果

translate:平移动画效果

下面使用xml创建动画-部分动画,详情见源码:

alpha:渐变透明度效果-从有到无

a1.xml

<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <alpha
        android:duration="3000"
        android:fromAlpha="1.0"
        android:toAlpha="0.0" />

</set>

rotate:旋转动画效果-顺时针

rotate.xml

<rotate
        android:duration="3000"
        android:fromDegrees="0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="+350" />

scale:伸缩动画效果-向右下角缩放

scale.xml

<scale
        android:duration="700"
        android:fillAfter="false"
        android:fromXScale="1.0"
        android:fromYScale="1.0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="100%"
        android:pivotY="100%"
        android:toXScale="0"
        android:toYScale="0" />

translate:平移动画效果-从上到下

translate.xml

 <translate
        android:duration="2000"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="0"
        android:toYDelta="300" />

如果是动画集合,就在set节点下,按照顺序加载。下面旋转和平移的集合

<set xmlns:android="http://schemas.android.com/apk/res/android" >

    <rotate
        android:duration="3000"
        android:fromDegrees="0"
        android:interpolator="@android:anim/accelerate_decelerate_interpolator"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="+350" />

    <translate
        android:duration="2000"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="0"
        android:toYDelta="300" />

</set>

写一个工具类加载这个动画

AnimaXmlUtils.java

/**
 * 使用XMl设计的动画
 *
 */
public class AnimaXmlUtils {
	private static Animation anim;

	/**
	 * 渐变透明动画,透明度:1.0~0.0
	 *
	 * @return
	 */
	public static Animation alphaFrom1To0(Context context) {
		anim = AnimationUtils.loadAnimation(context, R.anim.a1);
		return anim;
	}

	/**
	 * 渐变透明动画,透明度:1.0~0.0
	 *
	 * @return
	 */
	public static Animation alphaFrom0To1(Context context) {
		anim = AnimationUtils.loadAnimation(context, R.anim.a2);
		return anim;
	}

	/**
	 * 旋转动画,顺时针360
	 *
	 * @return
	 */
	public static Animation rotateTiclockwise(Context context) {
		anim = AnimationUtils.loadAnimation(context, R.anim.rotate);
		return anim;
	}

	/**
	 * 旋转动画,逆时针360
	 *
	 * @return
	 */
	public static Animation rotateAnticlockwise(Context context) {
		anim = AnimationUtils.loadAnimation(context, R.anim.rotate1);
		return anim;
	}

	/**
	 * 伸缩动画,从有到无
	 *
	 * @return
	 */
	public static Animation scaleFrom1to0(Context context) {
		anim = AnimationUtils.loadAnimation(context, R.anim.scale);
		return anim;
	}

	/**
	 * 伸缩动画,从有到无
	 *
	 * @return
	 */
	public static Animation scaleFrom0to1(Context context) {
		anim = AnimationUtils.loadAnimation(context, R.anim.scale1);
		return anim;
	}

	/**
	 * 平移动画,从上到下
	 *
	 * @return
	 */
	public static Animation translateTopToBottom(Context context) {
		anim = AnimationUtils.loadAnimation(context, R.anim.translate);
		return anim;
	}

	/**
	 * 平移动画,从下到上
	 *
	 * @return
	 */
	public static Animation translateBottomToTop(Context context) {
		anim = AnimationUtils.loadAnimation(context, R.anim.translate1);
		return anim;
	}

	/**
	 * 四个动画集合
	 *
	 * @return
	 */
	public static Animation animationRoaAndTranSet(Context context) {
		anim = AnimationUtils.loadAnimation(context, R.anim.aniset);
		return anim;
	}
}

效果图:

源码下载:http://download.csdn.net/detail/forwardyzk/8314155

时间: 2024-10-09 15:05:31

android构建基本XMl动画的相关文章

Android应用开发:动画开发——XML动画

引言 当今,Android.IOS二分天下,什么Tizen.COS blabla的均为蝼蚁,一看就知道是为打发领导或为花研发资金产出的产品,根本不是为了赢得市场,为的只是博得领导一笑而已,完全可以忽视.而Android开发又因为开发语言以Java为主,入门门槛极低导致基本上是个程序员,泡两天EOE,或Android Developer Training都可以过来说"哥会开发Android app了!",那么什么才能将你的App脱颖而出呢?准确的用户痛点.良好的数据结构.简单易用的交互流

Android(java)学习笔记263:Android下的属性动画(Property Animation)

1. 属性动画(Property Animation)引入: 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补间动画(tweened animation). 逐帧动画的工作原理很简单,其实就是将一个完整的动画拆分成一张张单独的图片,然后再将它们连贯起来进行播放,类似于动画片的工作原理. 补间动画则是可以对View进行一系列的动画操作,包括淡入淡出.缩放.平移.

Android中的帧动画的简单使用

Android中动画主要有下面几种,帧动画(frame),补间动画(tween),属性动画(property) 我们平时项目中主要用的是帧动画和补间动画 帧动画需要我们准备一组静态图片,这些图片是通过分解动画得来的,静态图片连起来播放形成动画效果 我们在res目录下新建一个drawable目录,用来存放动画资源和xml文件 图片如下: girl.xml 注意android:oneshot="false|true" 该属性控制动画是否重复播放,false代表重复播放 <?xml v

android帧切换播放动画

android动画的简单使用 这里通过不断切换图片,达成动画效果. 在布局中,定义一个ImageButton控件 并设置好其位置. //布局文件 //很简单,就一个控件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_wi

android 实现加载动画对话框

先来两张效果图        自定义对话框: public class LoadingProgressDialog extends ProgressDialog { private AnimationDrawable mAnimation; private Context mContext; private ImageView mImageView; private String mLoadingTitle; private TextView mLoadingTv; private int mR

android中设置Animation 动画效果

在 Android 中, Animation 动画效果的实现可以通过两种方式进行实现,一种是 tweened animation 渐变动画,另一种是 frame by frame animation 画面转换动画,接下来eoe进行讲解. tweened animation 渐变动画有以下两种类型: 1.alpha   渐变透明度动画效果 2.scale   渐变尺寸伸缩动画效果 frame by frame animation 画面转换动画有以下两种类型: 1.translate  画面转换位置

Android 实现蘑菇街购物车动画效果

版本:1.0 日期:2014.8.6 版权:© 2014 kince 转载注明出处 使用过蘑菇街的用户基本上都知道有一个加入购物车的动画效果,此处不具体描述想知道的可以去下载体验一下. 1.思路 目前想到两种方式实现这种效果,一是使用Tween动画,直截了当的进行一个移动,蘑菇街就是使用这样的方法.二是使用WindowManager创建一个View,然后对这个View进行移动. 2.实现 本文先用方式一方法实现,之后会用方式二方法实现. 方式一: Activity代码: package com.

Android研究之属性动画(Property Animation)完全解析详解下

 上一篇Android研究之属性动画(Property Animation)完全解析详解上已经基本展示了属性动画的核心用法: ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~ 当然了属性动画还有一部分的知识点,也能做出很不错的效果,将在本篇博客为您展示~ 1.如何使用xml文件来创建属性动画 大家肯定都清楚,View Animator .Drawable Animator都可以在anim文件夹下创建动画,然后在程序中使用,甚至在The

Android Acitivy切换平移动画效果实现

1.在anim目录下新建anim文件夹,新建tran_in.xml和tran_out.xml分别表示下一页切换进入,和本页切换出去. 即in表示下一页向左平移,out表示同样向左平移至消失. tran_in.xml <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="100%p" X轴从100->0 android:toXDel