Android---63---Android中的动画效果

Android中有四种动画效果:

AlphaAnimation:透明度动画效果

ScaleAnimation:缩放动画效果

TranslateAnimation:位移动画效果

RotateAnimation:旋转动画效果

1.透明动画效果

public class MainActivity extends Activity {

	private AlphaAnimation aa;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		aa = new AlphaAnimation(1, 0);
		aa.setDuration(3000);
		// 设置监听事件
		aa.setAnimationListener(new AnimationListener() {

			@Override
			public void onAnimationStart(Animation animation) {
				Toast.makeText(MainActivity.this, "start", 0).show();
			}

			@Override
			public void onAnimationRepeat(Animation animation) {
				Toast.makeText(MainActivity.this, "repeat", 0).show();
			}

			@Override
			public void onAnimationEnd(Animation animation) {
				Toast.makeText(MainActivity.this, "end", 0).show();
			}
		});
		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				v.startAnimation(aa);
			}
		});

	}
}

通过xml配置文件 完成该动画效果

创建xml文件:右键res->选择android xml file

创建完成之后会在res目录下生成一个anim文件夹

aa.xml:

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

</alpha>

Activity中只需要 声明 AlphaAnimation 并在Button的监听事件中 调用

v.setAnimation (AnimationUtils.loadAnimation(MainActivity.this,R.anim.aa));

效果是一样的。

2. 缩放动画效果

public class MainActivity extends Activity {

	private ScaleAnimation sa;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		sa = new ScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f,
				Animation.RELATIVE_TO_SELF, 0.5f);
		sa.setDuration(2000);

		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				v.startAnimation(sa);
			}
		});
	}
}

通过xml文件:

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

</scale>

3. 位移动画效果

public class MainActivity extends Activity {

	private TranslateAnimation ta;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		ta = new TranslateAnimation(0, 200, 0, 200);
		ta.setDuration(2000);

		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				v.startAnimation(ta);
				// v.startAnimation(AnimationUtils.loadAnimation(
				// MainActivity.this, R.anim.ta));
			}
		});
	}
}

xml:

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

</translate>

4. 旋转动画效果

public class MainActivity extends Activity {

	private RotateAnimation ra;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		// ra = new RotateAnimation(0, 360);
		// ra = new RotateAnimation(0, 360, 50, 150);
		ra = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f,
				Animation.RELATIVE_TO_SELF, 0.5f);
		ra.setDuration(2000);

		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				v.startAnimation(ra);
			}
		});
	}
}

动画混合:

AnimationSet

public class MainActivity extends Activity {

	AnimationSet as ;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		as = new AnimationSet(true);
		as.setDuration(2000);

		AlphaAnimation aa = new AlphaAnimation(0, 1);
		aa.setDuration(2000);

		TranslateAnimation ta = new TranslateAnimation(0, 200, 0, 200);
		ta.setDuration(2000);

		as.addAnimation(ta);
		as.addAnimation(aa);

		findViewById(R.id.btn).setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				v.startAnimation(as);
			}
		});
	}
}

创建Xml文件选择set:

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="2000"
    android:shareInterpolator="true" >

    <alpha
        android:fromAlpha="0"
        android:toAlpha="1" />

    <translate
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="200"
        android:toYDelta="200" />

</set>

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 13:25:09

Android---63---Android中的动画效果的相关文章

Android实现炫酷SVG动画效果

svg是目前十分流行的图像文件格式了,svg严格来说应该是一种开放标准的矢量图形语言,使用svg格式我们可以直接用代码来描绘图像,可以用任何文字处理工具打开svg图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到HTML中通过浏览器(如火狐浏览器)来观看.使用svg格式可让你设计激动人心的.高分辨率的Web图形页面. svg格式具备目前网络流行的jpg和png等格式无法具备的优势:可以任意放大图形显示,但绝不会以牺牲图像质量为代价;可在svg图像中保留可编辑和可搜寻的状态;平均来讲,s

CSS3中的动画效果记录

今天要记录的是CSS3中的三种属性transform.transition以及animation,这三个属性大大提升了css处理动画的能力. 一.Transform 变形 CSS中transform 属性允许你修改CSS可视化模型的坐标控件.使用transform,元素可以安装设定的值变形.旋转.缩放.倾斜. 语法: transform : none | <transform-function> [ <transform-function> ]* 也就是: transform: r

Android ListView Animation 4种动画效果(贴上了GIF图)

Animation是android的动画效果的组件,可以实现绚丽的翻页.ListView和GridView的展示. 这blog简单介绍一下4种动画效果方式: 1.  AlphaAnimation               控制渐变透明的动画效果    如图: 2.  ScaleAnimation               控制尺寸伸缩的动画效果 如图: 3.  TranslateAnimation        控制画面平移的动画效果  如图: 4.  RotateAnimation    

轻松实现Android,iOS的一个手势动画效果

先来看效果 这是iOS下的效果,android下完全一致.通过do_GestureView组件和do_Animation组件,deviceone能很容易实现复杂的跨平台纯原生动画效果,这个示例就是通过手势控制图片上下动画滑动实现开合效果,还支持声音效果. 下面是主要的代码 //index.ui.js var do_Animator1 = mm("do_Animator"); do_Animator1.append(500, { y: -1334, curve:"Linear&

Android学习笔记(25):带动画效果的View切换ViewAnimator及其子类

ViewAnimator可以实现带动画效果的View切换,其派生的子类是一些带动画效果切换功能的组件. ViewAnimator支持的XML属性: Attribute Name Description android:animateFirstView 设置显示第一个View组件时是否使用动画 android:inAnimation 设置显示组件时使用的动画 android:outAnimation 设置隐藏组件时使用的动画 1. ViewSwitcher视图切换组件. 添加视图的方法: 由Vie

angular中的动画效果

用angular来形成动画效果的代码如下 <!DOCTYPE html> <html lang="en" ng-app="app"> <head> <meta charset="UTF-8"> <title></title> <style> .box { width: 100px; height: 100px; background: red; } </st

JQuery中的动画效果

JQUERY DAY03: * 动画效果 * 显示与隐藏 * show() - 显示 * 无参版本 - 不具有动画效果 * show(speed,callback)有参版本 - 具有动画效果 * speed - 设置动画执行的时长,单位为毫秒 * 三个预定义值 - slow|normal|fast * callback - 当动画执行完毕后执行的函数 * hide() - 隐藏 * 无参版本 - 不具有动画效果 * hide(speed,callback)有参版本 - 具有动画效果 * spee

CSS3中的动画效果-------Day72

还记得么,在前面也曾实现过"仅仅用css让div动起来",还记得当时是怎么实现的么,是的,transition,针对的也比較局限,仅仅有旋转角度啊,长宽啊之类的,所以说,与其说是动起来,倒真不如说成是过渡.当然它另一个局限性,仅仅有当鼠标放上后才干够触发,仅仅是一个样式变成另一个样式,变化也比較单调,而真正的实现动画效果,css3中另一个很有效的方法:@keyframes. 首先.要知道它的规范和使用方法 还记得transition的使用方法么:在初始的样式中增加div{transit

css3实现的3中loading动画效果

一.css3中animation动画各种属性详解: animation Value:     [<animation-name> || <animation-duration> || <animation-timing-function> || <animation-delay> || <animation-iteration-count> || <animation-direction> || <animation-fill-