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:


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


RotateAnimation :

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


TranslateAnimation:

AnimationSet animationSet = new AnimationSet(true);    /**              * x和y轴的起始和结束位置 */TranslateAnimation translateAnimation = new TranslateAnimation                (                        Animation.RELATIVE_TO_SELF, 0f,                         Animation.RELATIVE_TO_SELF,0.5f,                         Animation.RELATIVE_TO_SELF, 0f,                        Animation.RELATIVE_TO_SELF, 1.0f                );                translateAnimation.setDuration(1000);                animationSet.addAnimation(translateAnimation);    view.startAnimation(animationSet);  



ScaleAnimation:


AnimationSet animationSet = new AnimationSet(true);    /**              * 围绕一个点伸缩 */ScaleAnimation scaleAnimation = new ScaleAnimation(1, 0.1f, 1,                        0.1f, Animation.RELATIVE_TO_SELF, 0.5f,                        Animation.RELATIVE_TO_SELF, 0.5f);                animationSet.addAnimation(scaleAnimation);                animationSet.setStartOffset(1000);                animationSet.setFillAfter(true);                animationSet.setFillBefore(false);                animationSet.setDuration(2000);    view.startAnimation(animationSet); 



/** * @author 张兴业 * http://blog.csdn.net/xyz_lmn * 我的新浪微博:@张兴业TBOW */

更多相关文章

  1. Shape Seclector和layor_list
  2. Android设置透明、半透明效果
  3. Android设置透明、半透明等效果
  4. TextView 实现跑马灯效果
  5. 转:善用Android预定义样式来为我们的布局设置效果,大大节约代码量
  6. Android自定义ProgressBar样式:渐变圆角水平进度条
  7. android实现图片平铺效果&WebView多点触控实现缩放
  8. Android属性动画--基础使用
  9. android:shape的使用

随机推荐

  1. Android(安卓)横屏时禁止输入法全屏
  2. android调用系统打电话功能
  3. Android实现画虚线的控件
  4. android CTS SELinuxDomainTest# testIni
  5. android wegit 组件
  6. androidのview游戏框架
  7. 判断android devices是否联网
  8. Android学习之ListView使用基础
  9. 【Android】进程与线程基本知识
  10. android经典优化点