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”提供了丰富的UI开发示例,帮助开发者更好地理解和应用各种UI类库。下面,我们将详细探讨这些知识点。 1. **Android UI组件**:Android SDK包含了多种内置的UI...
6. **动画**:Android的动画系统,包括Property Animation和Value Animator,可以用来创建复杂的图像动画效果,如淡入淡出、滑动等。 7. **图片滤镜**:通过应用色彩空间转换、模糊、锐化等图像处理算法,可以实现...
Android的Animation框架或第三方库(如libGDX)可以实现这一功能。 7. **音效与音乐**:源码会涉及到AudioTrack或MediaPlayer类来播放背景音乐和音效,同时可能使用OpenSL ES进行更高级的音频处理。 8. **多线程...
这个项目“Android项目之——漂亮的平台书架”旨在教你如何利用Android开发技术来实现这样一个功能丰富的用户界面。下面我们将深入探讨相关知识点。 1. **Material Design**:书架的设计通常会遵循Material Design...
整体来看,《Pro Android Graphics》书籍是一本系统而全面的Android图形开发指南,覆盖了从基本的图形处理到复杂的动画和图像处理技术的各个方面。对于那些希望深入了解Android平台图形编程和优化的开发者来说,本书...
12. **UI动画和过渡效果**: - 如何通过Animation和Transition API实现更丰富的用户体验,如消息发送后的动画反馈。 13. **权限动态申请**: - 如果目标API等级较高,需要处理运行时权限动态申请,例如Android ...
� 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全 开 源的移动计算平台,相信第三方应用会很快的丰富起来。 � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的...
《第一行代码——Android(第3版)》是郭霖老师撰写的一本广受欢迎的Android入门书籍,旨在帮助初学者快速掌握Android应用开发的基本技能。这本书的资源压缩包包含了丰富的学习资料,对于想要深入理解Android开发的...
10. **动画与过渡效果**:微信中丰富的过渡动画提升了用户体验,Android的Transition API和Property Animation可以实现类似效果。 11. **国际化与本地化**:为了支持全球用户,应用需考虑国际化和本地化。Android...
这里提到的"Mars Android第二季视频源码"是一份珍贵的学习资源,它涵盖了Android开发中的诸多核心概念和技术。下面我们将深入探讨这些源码所体现的知识点,帮助开发者提升Android应用开发的能力。 首先,我们注意到...
在Android系统原理及开发要点详解系列的第四部分中,我们将深入探讨Android系统的内核、运行机制、组件交互以及开发者需要注意的关键点。这一部分是整个系列的总结,旨在为Android开发者提供一个全面的理解,以便...
12. **动画和过渡**:使用Animation和Transition API可以实现丰富的界面过渡和用户反馈效果。 通过研究这个源码,开发者不仅可以了解一个成熟应用的UI设计思路,还能学习到如何将Android的特性和最佳实践应用于实际...
9. **动画效果**:为了增加用户体验,可能会使用Android的动画框架(如Property Animation)为书本的打开、关闭、滑动等动作添加平滑的过渡效果。 10. **主题和样式**:Android的样式和主题系统可以用来统一应用的...
8. **Android图形库**:如果游戏包含动画或图形元素,可能会用到Android的Canvas、SurfaceView或者更高级的库如Android Animation和Lottie库来创建动态效果。 9. **音效与音乐**:Android的AudioTrack和MediaPlayer...
在本项目中,“flutter练习——漫画客户端”是一个使用Flutter框架开发的应用程序实例,主要目标是为用户提供一个漫画阅读的平台。Flutter是由Google推出的开源UI工具包,用于构建高性能、高保真度的移动应用程序,...
包含了Android的两种动画体系——属性动画和视图动画的源码示例,如何为应用添加平滑过渡效果。 7. **多线程与异步处理**: 可能会涵盖Handler、Looper、Thread和AsyncTask的使用,以及如何处理Android中的并发...
196 建立程序连接 196 程序说明 198 第12章 冷饮店手机游戏关卡与难度制作 12.1 关卡布置方式 208 背景构建 208 创建界面文字 208 Sink(水槽) 210 Other(杯子) 210 NewGame(新关卡) 218 MusicBox(声音控制) ...
- Android提供了丰富的动画效果,源码可能包含使用Transition、Animator或Property Animation实现的各种动画。 13. **权限管理**: - 自Android 6.0起,运行时权限管理成为重要部分。源码中应包含如何检查和请求...
#### 五、第一个Flutter应用——计数器示例 1. **计数器应用实现步骤**: - 创建一个新的Flutter项目。 - 在主屏幕上添加一个按钮和一个文本显示当前计数值。 - 为按钮绑定点击事件,每次点击增加计数值并在界面...