`
xyz_lmn
  • 浏览: 65397 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Android UI开发第十二篇——动画效果Animation(一)

 
阅读更多
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); 

代码下载地址:

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

/**
* @author 张兴业
* 邮箱:xy-zhang#163.com
* android开发进阶群:278401545
*
*/

分享到:
评论

相关推荐

    安卓Android源码——ui开发类库示例源码.zip

    本资源“安卓Android源码——ui开发类库示例源码.zip”提供了丰富的UI开发示例,帮助开发者更好地理解和应用各种UI类库。下面,我们将详细探讨这些知识点。 1. **Android UI组件**:Android SDK包含了多种内置的UI...

    安卓Android源码——Image各种效果处理.zip

    6. **动画**:Android的动画系统,包括Property Animation和Value Animator,可以用来创建复杂的图像动画效果,如淡入淡出、滑动等。 7. **图片滤镜**:通过应用色彩空间转换、模糊、锐化等图像处理算法,可以实现...

    安卓Android源码——游戏源码——忍者快跑.zip

    Android的Animation框架或第三方库(如libGDX)可以实现这一功能。 7. **音效与音乐**:源码会涉及到AudioTrack或MediaPlayer类来播放背景音乐和音效,同时可能使用OpenSL ES进行更高级的音频处理。 8. **多线程...

    Android项目之——漂亮的平台书架.zip

    这个项目“Android项目之——漂亮的平台书架”旨在教你如何利用Android开发技术来实现这样一个功能丰富的用户界面。下面我们将深入探讨相关知识点。 1. **Material Design**:书架的设计通常会遵循Material Design...

    Pro Android Graphics - Wallace Jackson.pdf

    整体来看,《Pro Android Graphics》书籍是一本系统而全面的Android图形开发指南,覆盖了从基本的图形处理到复杂的动画和图像处理技术的各个方面。对于那些希望深入了解Android平台图形编程和优化的开发者来说,本书...

    Android源码——仿飞鸽传书源码.zip

    12. **UI动画和过渡效果**: - 如何通过Animation和Transition API实现更丰富的用户体验,如消息发送后的动画反馈。 13. **权限动态申请**: - 如果目标API等级较高,需要处理运行时权限动态申请,例如Android ...

    新版Android开发教程.rar

    � 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全 开 源的移动计算平台,相信第三方应用会很快的丰富起来。 � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的...

    第一行代码资源.zip

    《第一行代码——Android(第3版)》是郭霖老师撰写的一本广受欢迎的Android入门书籍,旨在帮助初学者快速掌握Android应用开发的基本技能。这本书的资源压缩包包含了丰富的学习资料,对于想要深入理解Android开发的...

    Android源码——完美高仿的微信源码.zip

    10. **动画与过渡效果**:微信中丰富的过渡动画提升了用户体验,Android的Transition API和Property Animation可以实现类似效果。 11. **国际化与本地化**:为了支持全球用户,应用需考虑国际化和本地化。Android...

    mars Android第二季视频源码

    这里提到的"Mars Android第二季视频源码"是一份珍贵的学习资源,它涵盖了Android开发中的诸多核心概念和技术。下面我们将深入探讨这些源码所体现的知识点,帮助开发者提升Android应用开发的能力。 首先,我们注意到...

    Android系统原理及开发要点详解04

    在Android系统原理及开发要点详解系列的第四部分中,我们将深入探讨Android系统的内核、运行机制、组件交互以及开发者需要注意的关键点。这一部分是整个系列的总结,旨在为Android开发者提供一个全面的理解,以便...

    移动应用Android 蘑菇街界面设计源码.rar

    12. **动画和过渡**:使用Animation和Transition API可以实现丰富的界面过渡和用户反馈效果。 通过研究这个源码,开发者不仅可以了解一个成熟应用的UI设计思路,还能学习到如何将Android的特性和最佳实践应用于实际...

    Android项目之-漂亮的平台书架.zip

    9. **动画效果**:为了增加用户体验,可能会使用Android的动画框架(如Property Animation)为书本的打开、关闭、滑动等动作添加平滑的过渡效果。 10. **主题和样式**:Android的样式和主题系统可以用来统一应用的...

    Android代码-EggGame.zip

    8. **Android图形库**:如果游戏包含动画或图形元素,可能会用到Android的Canvas、SurfaceView或者更高级的库如Android Animation和Lottie库来创建动态效果。 9. **音效与音乐**:Android的AudioTrack和MediaPlayer...

    flutter练习——漫画客户端

    在本项目中,“flutter练习——漫画客户端”是一个使用Flutter框架开发的应用程序实例,主要目标是为用户提供一个漫画阅读的平台。Flutter是由Google推出的开源UI工具包,用于构建高性能、高保真度的移动应用程序,...

    android疯狂讲义源码 part2

    包含了Android的两种动画体系——属性动画和视图动画的源码示例,如何为应用添加平滑过渡效果。 7. **多线程与异步处理**: 可能会涵盖Handler、Looper、Thread和AsyncTask的使用,以及如何处理Android中的并发...

    unity2d 游戏开发资源 unity2d 游戏开发资源

    196 建立程序连接 196 程序说明 198 第12章 冷饮店手机游戏关卡与难度制作 12.1 关卡布置方式 208 背景构建 208 创建界面文字 208 Sink(水槽) 210 Other(杯子) 210 NewGame(新关卡) 218 MusicBox(声音控制) ...

    Android应用源码(精)网星工具箱源代码.zip

    - Android提供了丰富的动画效果,源码可能包含使用Transition、Animator或Property Animation实现的各种动画。 13. **权限管理**: - 自Android 6.0起,运行时权限管理成为重要部分。源码中应包含如何检查和请求...

    Flutter实战1

    #### 五、第一个Flutter应用——计数器示例 1. **计数器应用实现步骤**: - 创建一个新的Flutter项目。 - 在主屏幕上添加一个按钮和一个文本显示当前计数值。 - 为按钮绑定点击事件,每次点击增加计数值并在界面...

Global site tag (gtag.js) - Google Analytics