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菜鸟的成长笔记(6)——剖析源码学自定义主题Theme
  4. Android与iOS自定义URL Scheme唤醒app
  5. 为android开放类增加自定义成员方法
  6. Android如何开发自定义编译时注解
  7. Android 如何在自定义界面上启用输入法 (How to enable inputmet
  8. android 使用自定义权限(1)

随机推荐

  1. Android(安卓)创建与解析XML(六)—— 比较
  2. 【整理】Android中EditText中的InputType
  3. Android命令大全
  4. Android中Button控件Buttons in button b
  5. 使用Android(安卓)Studio与ArcGIS Androi
  6. [转]android:layout_gravity 和 android:
  7. Android电话拨打流程源码分析
  8. 21款优秀Android开源库整理推荐
  9. Android(安卓)多线程之几个基本问题
  10. Anddroid各种布局总结