Andorid Animation and Graphics系列(一)
2015-08-10 17:19
260 查看
Animation Graphics概述
接触Android也有一年多时间了,之前做JavaEE还算有点基础,这一年也收获了不少东西,公司没什么大的产品,重点也不在移动端,自己在底下也算学了很多东西总感觉没有用武之地,最近考虑换工作正好总结一下,希望能写成博客一是将一些有价值的东西记录下来,二是希望能对有需要的人有所帮助。Animation and Graphics系列大部分是自己根据官方文档的译文,加上自己理解。如果有条件建议读一下Google的Android文档,简直是学习Android的最佳资料,不能再赞。废话少说,进入正题。
Android为UI元素的动画和绘制自定义2D、3D图形提供了一系列强大的API。下面就这些API进行一系列详细介绍,在开发中我们就可以游刃有余的进行相应的应用。
Animation
Android框架提供了两种动画系统:属性动画(Property Animation,3.0之后引入)和视图动画(View Animation)。这两种动画都是可配置的,但是推荐属性动画优先使用,因为他具有高度的灵活性,以及提供更多的配置特征。除此之外,我们还可以使用Drawable Animation,Drawable Animation可以一帧一阵的加载drawable资源文件,例如后文我们将会讲到利用Drawable Animation实现正在加载的动画效果。Property Animation
在3.0(API level 11)中引入了属性动画,属性动画可以实现任何对象属性的动画效果,包括在屏幕上没有渲染出来的。属性动画是可扩展的,可以很好的实现自定义属性的动画效果。
View Animation
View Animation是比较早的动画系统而且只能用于View对象及其子类。他高度易用并且提供了强大的能力来应付app的各种需求。
Drawable Animation
Drawable Animation依次展示drawable资源,就像老式胶卷放映机一样,一帧帧的图片连起来播放给人产生视觉动画效果。
2D、3D 图形
app开发过程中,正确的考虑app的图形需求十分重要,尤其很多交互性强的app。不同的图形任务需要不同的技术来完成。比如,图形和动画对于一个相互对交互性不是很强的app和一个交互性很强的游戏来说,需要的程度和效果是完全不一样的。Canvas 和 Drawable
Android提供了一系列具有通用功能的View控件来满足用户需求,我们可以继承这些控件去自定义的改变这些原生控件的外观和行为。除此之外,可以使用Canvas类中提供的各种绘制方法来渲染我们自己的2D图形或者创造出纹理外观的按钮和逐帧动画。
Hardware Acceleration
从3.0开始,Canvas的API绘制的大部分图形都可以通过开启硬件加速来进一步提高他们的性能。
OpenGL
Android支持OpenGL ES 1.0和2.0,Android本身通过NDK对这一协议进行了很好的支持。在想要增加一些图形处理增强APP体验但是Canvas API却不支持这些图形的时候使用framework API不失为一种理想的选择,或者希望平台独立而且不要求高性能的时候。使用framework API相比NDK来说有一个性能下降的问题,所以对多数图形交互密集的app比如游戏来说,使用NDK是比较有益的(必须要明白的是我们仍然可以使用framework API达到充足的性能要求。比如,Google机器人app就是完全使用framework API开发的)。
以上介绍了Android Animation和Graphics的一些概况,后面将作详尽叙述。
相关文章推荐
- 机器学习之从logistic到神经网络算法
- 包装类、String转为int、正则表达式
- FOR XML PATH
- HDU 2389 Rain on your Parade
- Foundation(OC) 和 Core Foundation(C) 相互转换
- Netty工具类HashedWheelTimer源码走读(二)
- IntelliJ IDEA 设置代码提示或自动补全的快捷键
- poj 3411 dij+状压
- 低成本服务器搭建千万级数据采集系统
- Java中守护线程的总结(转)
- 机房收费系统——上下机
- Windows下搭建Eclipse+Android4.0开发环境
- Mongodb简单的分片搭建与测试
- 腾讯TDW:大型Hadoop集群应用[转载]
- HDU 2819 Swap
- poj - 2528 Mayor's posters(线段树+离散化)
- LNMP的Nginx启动脚本和配置文件
- Struts2中Action由自己与由Spring管理的区别
- 高性能IO模型浅析
- 社会化海量数据采集爬虫框架搭建