Android框架本身就使用了大量的动画效果,比如Activity切换的动画效果,Dialog弹出和关闭时的渐变动画效果以及Toast显示信息时的淡入淡出效果等等。Android系统框架为我们提供了一些动画类及其工具类,所以在Andorid应用中使用动画效果非常简单。Android中可以在xml中定义Animation,也可以在java code中定义。

Android中动画的实现分两种方式,一种方式是补间动画 Tween Animation,就是说你定义一个开始和结束,中间的部分由android自身实现。另一种叫逐帧动画 Frame Animation,就是说一帧一帧的连起来播放就变成了动画。

一、Tween Animation

xml中实现:

alpha 渐变透明度动画效果
scale 渐变尺寸伸缩动画效果
translate 画面转换位置移动动画效果
rotate 画面转移旋转动画效果


JavaCode

AlphaAnimation 渐变透明度动画效果
ScaleAnimation 渐变尺寸伸缩动画效果
TranslateAnimation 画面转换位置移动动画效果
RotateAnimation 画面转移旋转动画效果

使用XML文件定义Tween Animation时XML文件的根节点可以是<alpha>、<scale> <translate>、<rotate>或者是把它们都放入<set>节点中。如下:

<?xml version="1.0" encoding="utf-8"?>
< set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha/>
<scale/>
<translate/>
<rotate/>
< /set>

Java Code实现如下:

AlphaAnimation:

  1. AnimationSet animationSet = new AnimationSet(true);//创建一个AnimationSet对象
  2. AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);//创建一个AlphaAnimation对象
  3. alphaAnimation.setDuration(1000);//设置动画执行的时间(单位:毫秒)
  4. animationSet.addAnimation(alphaAnimation);//将AlphaAnimation对象添加到AnimationSet当中
  5. view.startAnimation(animationSet);//使用view的startAnimation方法开始执行动画

RotateAnimation :

  1. AnimationSet animationSet = new AnimationSet( true);
  2. /** * 前两个参数定义旋转的起始和结束的度数,后两个参数定义圆心的位置
  1. */
  2. RotateAnimation rotateAnimation = new RotateAnimation(0, 360,
  3. Animation.RELATIVE_TO_PARENT, 1f,
  4. Animation.RELATIVE_TO_PARENT, 0f);
  5. rotateAnimation.setDuration(5000);
  6. animationSet.addAnimation(rotateAnimation);
  7. imageView.startAnimation(animationSet);

TranslateAnimation:

  1. AnimationSet animationSet = new AnimationSet(true);
  2. /**
  3. * x和y轴的起始和结束位置
  4. */
  5. TranslateAnimation translateAnimation = new TranslateAnimation
  6. (
  7. Animation.RELATIVE_TO_SELF, 0f,
  8. Animation.RELATIVE_TO_SELF,0.5f,
  9. Animation.RELATIVE_TO_SELF, 0f,
  10. Animation.RELATIVE_TO_SELF, 1.0f
  11. );
  12. translateAnimation.setDuration(1000);
  13. animationSet.addAnimation(translateAnimation);
  14. view.startAnimation(animationSet);

ScaleAnimation:

  1. AnimationSet animationSet = new AnimationSet(true);
  2. /**
  3. * 围绕一个点伸缩
  4. */
  5. ScaleAnimation scaleAnimation = new ScaleAnimation(1, 0.1f, 1,
  6. 0.1f, Animation.RELATIVE_TO_SELF, 0.5f,
  7. Animation.RELATIVE_TO_SELF, 0.5f);
  8. animationSet.addAnimation(scaleAnimation);
  9. animationSet.setStartOffset(1000);
  10. animationSet.setFillAfter(true);
  11. animationSet.setFillBefore(false);
  12. animationSet.setDuration(2000);
  13. view.startAnimation(animationSet);

代码下载地址:

http://www.devdiv.com/forum.php?mod=viewthread&tid=88504&pid=546599&page=1&extra=#pid546599

更多相关文章

  1. Android开发中阴影效果的实现
  2. Android(安卓)UI开发第十二篇——动画效果Animation(一)
  3. Android(安卓)滑动效果高级篇(七)—— 华丽翻页效果
  4. Android(安卓)Animation学习笔记【原帖没有Demo,自己写了一个,链接
  5. Android基础入门教程——8.1.1 Android中的13种Drawable小结 Par
  6. Android之——史上最简单最酷炫的3D图片浏览效果的实现
  7. Android作业:一个3D相册源码
  8. Android(安卓)APP支持RTL模式
  9. Android基础入门教程——8.4.4 Android动画合集之属性动画-又见

随机推荐

  1. 【Android多媒体】多媒体架构-Android官
  2. Android事件处理
  3. android对应版本号
  4. android 按钮背景色的渐变效果实现
  5. Android(安卓)Contacts(一)—— 读取联系人
  6. Android中跑马灯 maxLines与singleLine
  7. Android(安卓)内置图片
  8. 如何在unity中生成android工程
  9. Android学习笔记之Android安装问题
  10. Android是什么(What is Android)