视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Android 动画效果(一)
2025-09-27 20:13:47 责编:小OO
文档
Android UI开发第十二篇——动画效果Animation(一) 

分类: android UI 2011-10-26 13:22 505人阅读 评论(1) 收藏 举报 

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文件的根节点可以是 或者是把它们都放入节点中。如下:

< set xmlns:android="http://schemas.android.com/apk/res/android">

  

  

  

  

< /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.

6.            rotateAnimation.setDuration(5000);     

7.            animationSet.addAnimation(rotateAnimation);     

8.            imageView.startAnimation(animationSet);  

TranslateAnimation:

1.AnimationSet animationSet = new AnimationSet(true);     

2.

3./**  

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

5.*/ 

6.TranslateAnimation translateAnimation = new TranslateAnimation     

7.            (     

8.                    Animation.RELATIVE_TO_SELF, 0f,      

9.                    Animation.RELATIVE_TO_SELF,0.5f,      

10.                    Animation.RELATIVE_TO_SELF, 0f,     

11.                    Animation.RELATIVE_TO_SELF, 1.0f     

12.            );     

13.

14.            translateAnimation.setDuration(1000);     

15.            animationSet.addAnimation(translateAnimation);     

16.view.startAnimation(animationSet);   

ScaleAnimation:

1.AnimationSet animationSet = new AnimationSet(true);     

2.

3./**  

4.             * 围绕一个点伸缩  

5.*/ 

6.ScaleAnimation scaleAnimation = new ScaleAnimation(1, 0.1f, 1,     

7.                    0.1f, Animation.RELATIVE_TO_SELF, 0.5f,     

8.                    Animation.RELATIVE_TO_SELF, 0.5f);     

9.            animationSet.addAnimation(scaleAnimation);     

10.            animationSet.setStartOffset(1000);     

11.            animationSet.setFillAfter(true);     

12.            animationSet.setFillBefore(false);     

13.            animationSet.setDuration(2000);     

14.view.startAnimation(animationSet);      

代码下载地址:

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

显示全文
专题