`

Android开发之动画(Animation)与绘图(Graphics)详解

阅读更多

 

原文自:http://android.eoe.cn/topic/ui

 

动画与绘图综述

Android提供了一系列强大的API来把动画加到UI元素中,以及绘制订制的2D和3D图像中去。下面的几节将综述这些可用的API以及系统的功能,同时帮你做出最优的选择。

动画

Android框架提供了两种动画系统:属性动画(在Android3.0中引进)以及视图动画。这两种动画系统都有变化的选择,但是总的来说,属性动画系统是更好的选择,因为它更加灵活,并提供了更多的特性。在这两种系统之外,你可以使用帧动画,即你可以加载画图资源,并一帧接一帧的显示它们。

属性动画
:在Android3.0中引进 (API level 11), 属性动画系统可以使任何对象的属性成为动画,包括那些不会在屏幕上显示的对象。这个系统是可扩展的,而且也适用于自定义类型。
视图动画
:视图动画则是比较旧的系统,只能用于View类。它相对更容易被设置,而且足够满足许多应用的需求。

帧动画
:帧动画即一个接一个的显示Drawable资源,就像放一部电影。如果你想要的动画可以简单的用资源来表示,比如一系列的位图,那就可以用这种方法。
2D 和 3D 图形

当你写一个应用时,确定你的图形需求十分的重要,不同的图形任务最好用不同的技术来实现。举例来说,一个稳定的应用和一个互动游戏的图形和动画是有很大不同的。在这里,我们要讨论你在Android上绘图的一些方式,以及它们分别适用于哪些任务。

画布与绘图对象
:Android 提供了一系列的View 小部件来为一系列的用户界面提供广泛的支持。你也可以继承这些小部件来修改它们的外表或行为方式。除此以外,你可以你可以用Canvas类里的各种绘图方法订制2D视图,或创建绘图对象。

硬件加速
:从Android 3.0开始, 你可以通过画图API来硬件加速大多数的绘画工作,从而进一步提高它们的性能。

 

OpenGL
:Android 在框架API层面和NDK上都支持 OpenGL ES 1.0 和 2.0。当你想加入少数一些Canvas API不支持的图像增强时,或是你希望平台独立,而不需要高性能时,你可以使用框架API 。但使用NDK时,性能会有明显的突破,所以对于许多关注图形的应用,比如游戏,使用NDK是更有利的选择。如果你有很多的本地代码想转到Android平台上,也可以使用NDK上的OpenGL。想了解更多NDK, 请阅读NDK下载中docs/directory下的文档。

分享到:
评论

相关推荐

    iphone核心动画

    Core Animation与Core Graphics紧密集成,允许开发者利用Core Graphics的功能来绘制复杂的图形,并将其结果作为层的`contents`属性。 #### 6.1 Core Animation and Core Graphics集成 - **使用Core Graphics**:...

    Android ApiDemos

    8. **图形与动画(Graphics & Animations)**:展示2D和3D绘图,以及使用Property Animation和Tween Animation创建动画。 9. **网络(Networking)**:涉及HTTP请求、Socket通信,以及如何处理网络相关的权限。 10. **...

    unclock android

    ##### 2.7 图形与动画(Chapter 9: Graphics and Animation) - **2D绘图**:学习如何使用Canvas类绘制2D图形。 - **动画效果**:介绍如何添加动画效果以提升用户体验。 ##### 2.8 多媒体(Chapter 10: Multimedia...

    Core.Animation.for.Mac.OS.X.and.the.iPhone(Pragmatic.2008-10)

    - Core Animation 是苹果为 Mac OS X 和 iPhone 开发的一套强大的动画处理框架。 - 它不仅仅是一种美化界面的工具,更重要的是它能帮助开发者构建更为直观且易于理解的用户界面。 2. **应用范围:** - 广泛应用...

    iOS Core Animation

    - **功能**:`CALayer` 支持触摸事件处理、基于Core Graphics的绘图、变换操作(如旋转、缩放)以及简单的动画效果。 #### 图层的能力 - **基础能力**:图层提供了基本的可视化功能,包括但不限于显示内容、变换、...

    Android画图学习笔记

    - 在Android开发过程中,对于图形绘制的理解不仅仅局限于Google提供的官方文档,还需要深入掌握Java的基础类库,尤其是那些与图形处理相关的类。这部分内容往往在官方文档中涉及较少,但对于开发者来说至关重要。 ...

    html5 我的文字动画原理

    HTML5作为现代网页开发的标准,为开发者提供了丰富的功能,其中之一就是对文字动画的支持。本文将深入探讨HTML5中实现文字动画的原理及其差异性。 一、Canvas与SVG:两种主要的动画载体 1. Canvas:HTML5的Canvas...

    android 经典教程

    图形与动画(Graphics and Animation)** - **Canvas绘图基础**:介绍了Canvas类的基本用法,包括绘制点、线、矩形等基本图形。 - **Path类使用技巧**:讲解了Path类的高级用法,如绘制复杂的曲线和图形组合。 - *...

    iOS核心动画技巧

    每个视图实际上都有一个与之关联的图层,视图的许多外观和行为特性是由图层实现的。图层提供了更多的灵活性和控制能力,使得开发者能够更好地调整视图的渲染方式和动画效果。 #### 图层的能力 **使用图层** 图层...

    iOS游戏应用源代码——yooyke-iScrash-4f9c9b2.zip

    4. Core Animation与Core Graphics:用于实现复杂的动画效果和自定义绘图。 5. UIKit:基础的UI框架,用于构建游戏界面。 三、核心组件 1. 游戏场景(GameScene):通常由一个SKScene子类实现,包含了游戏的主要...

    ios-LBBClipPicture.zip

    总之,LBBClipPicture项目展示了iOS中图片剪切的完整流程,涵盖了自定义视图、Core Graphics、贝塞尔路径、图像裁剪、触摸事件处理、属性动画以及图片保存与分享等多个重要知识点。理解并掌握这些概念,对于iOS...

    ios电池柱状图

    10. **测试与调试**:在开发过程中,测试各种设备和系统版本的兼容性,以及使用Xcode的调试工具来排查和修复问题,是保证应用质量的关键步骤。 通过研究"ios电池柱状图"这个demo,开发者不仅可以掌握图形开发的基本...

    iPhone SDK 3开发指南

    - **Core Graphics**:低级绘图API,用于绘制自定义图形和图像处理。 #### 四、开发流程详解 - **项目创建**:通过Xcode新建或打开现有项目。 - **界面设计**:使用Storyboard或XIB文件布局用户界面。 - **编写...

    ios应用源码之简单写字板 2018128

    3. **Core Graphics和Core Animation**: 这两个框架常用于绘图和动画效果,写字板应用可能使用它们来实现手写识别和流畅的笔迹绘制。 4. **触摸事件处理**: 写字板需要监听并响应用户的触摸动作,这涉及到...

    IOS Quartz 2D

    ### IOS Quartz 2D 绘图引擎详解 #### 引言 Quartz 2D 是 Apple 开发的一款高性能 2D 图形引擎,被广泛应用于 iOS 和 macOS 的应用程序开发之中。该引擎以其强大的功能和易用性著称,能够帮助开发者高效地创建高...

    j2me打砖块游戏

    **J2ME打砖块游戏开发详解** J2ME(Java 2 Micro Edition)是Java平台的一个子集,主要用于移动设备、嵌入式系统和其他计算设备的开发。它提供了轻量级的框架,使得开发者可以构建功能丰富的应用程序,尤其是游戏。...

    vb.net弹球小游戏

    8. **图形和动画(Graphics and Animation)**:VB.NET的Graphics类提供了绘图功能,我们可以利用它来绘制动态的球和墙壁。使用Timer控件,我们可以定期更新画面,实现基本的动画效果。 开发过程中,你需要熟练掌握...

    LKDrawWord(iOS源代码)

    总的来说,LKDrawWord项目展示了如何在iOS应用中实现文字动画效果,利用Swift语言的优势,结合Core Graphics、TextKit和Core Animation等核心技术,为用户带来了独特的视觉体验。对于iOS开发者,尤其是希望提升UI...

    无线互联IOS笔记

    - **Quartz Core框架**:包含Core Animation接口,用于高级动画制作与视觉效果。 - **MediaPlayer框架**:使应用程序能够播放视频和音频内容。 - **AVFoundation框架**:包含Objective-C类,用于播放音频内容。 ...

Global site tag (gtag.js) - Google Analytics