学习android中,看了这个博主的文章挺好。为了更好的学习作为记录。

引用地址:http://blog.csdn.net/xyz_lmn/article/details/6906783


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文件

  1. <?xmlversion="1.0"encoding="utf-8"?>

  2. <setxmlns:android="http://schemas.android.com/apk/res/android">

  3. <alpha/>

  4. <scale/>

  5. <translate/>

  6. <rotate/>

  7. </set>


Java Code实现如下:

AlphaAnimation:

[java]

  1. AnimationSetanimationSet=newAnimationSet(true);//创建一个AnimationSet对象

  2. AlphaAnimationalphaAnimation=newAlphaAnimation(1,0);//创建一个AlphaAnimation对象

  3. alphaAnimation.setDuration(1000);//设置动画执行的时间(单位:毫秒)

  4. animationSet.addAnimation(alphaAnimation);//将AlphaAnimation对象添加到AnimationSet当中

  5. view.startAnimation(animationSet);//使用view的startAnimation方法开始执行动画


RotateAnimation :

[java]

  1. AnimationSetanimationSet=newAnimationSet(true);

  2. /**

  3. *前两个参数定义旋转的起始和结束的度数,后两个参数定义圆心的位置

  4. */

  5. RotateAnimationrotateAnimation=newRotateAnimation(0,360,

  6. Animation.RELATIVE_TO_PARENT,1f,

  7. Animation.RELATIVE_TO_PARENT,0f);

  8. rotateAnimation.setDuration(5000);

  9. animationSet.addAnimation(rotateAnimation);

  10. imageView.startAnimation(animationSet);


TranslateAnimation:

[java]

AnimationSetanimationSet=newAnimationSet(true);

  1. /**

  2. *x和y轴的起始和结束位置

  3. */

  4. TranslateAnimationtranslateAnimation=newTranslateAnimation

  5. (

  6. Animation.RELATIVE_TO_SELF,0f,

  7. Animation.RELATIVE_TO_SELF,0.5f,

  8. Animation.RELATIVE_TO_SELF,0f,

  9. Animation.RELATIVE_TO_SELF,1.0f

  10. );

  11. translateAnimation.setDuration(1000);

  12. animationSet.addAnimation(translateAnimation);

  13. view.startAnimation(animationSet);


ScaleAnimation:

[java]

  1. AnimationSetanimationSet=newAnimationSet(true);

  2. /**

  3. *围绕一个点伸缩

  4. */

  5. ScaleAnimationscaleAnimation=newScaleAnimation(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);


更多相关文章

  1. Android水波纹点击效果
  2. 收集android上开源的酷炫的交互动画和视觉效果:Interactive-anima
  3. android 抗锯齿效果
  4. Android(安卓)Animation学习笔记
  5. Android(安卓)ListView元素间隙线自定义渐变效果
  6. Android(安卓)8.1 关机充电动画(一)模式选择
  7. EditText设置更多文字为省略号
  8. Android(安卓)特殊界面效果之——透明界面
  9. android:layout_weight属性详解

随机推荐

  1. android 动画学习系列(一)
  2. ACTION_PICK与ACTION_GET_CONTENT
  3. android控件之GridView
  4. Android热插拔事件处理流程--Vold
  5. android包Android(安卓)"java.lang.NoCla
  6. Android动态显示和隐藏状态栏探究。
  7. IPC——android进程间通信
  8. Android(安卓)Robotium小结
  9. android ConfigChanges
  10. Unity5.0与Android交互