Android 图像处理篇


【eoeAndroid特刊】 第二期: 图像处理篇(1)第二期: 图像处理篇(1) 发布版本: Ver 1.0.0(build 2009.05.20) © Copyright 2009 eoeAndroid.com. All Rights Reserved. 变更信息:变更信息: 从本期开始,将本系列名称由【协同翻译】变更为【eoeAndroid特刊】,每次以专题的形式策划、组织和 汇总文章,相关约定如下: • 每期以专题的形式组织文章和资料; • 每期历时1周或2周; • 每期设定一个主题作为专题方向; • 参与人员不限,要求有积极有热情,有奉献精神; • 文章数量不限,但要求和专题方向一致; • 每期策划主题和方案在eoeAndroid社区发布; 我们欢迎更多的朋友加入进来,一起分享,一起成长。 写在前面:写在前面: 本篇简介:本篇简介: 本期是eoeAndroid策划的第二篇专题,主要整理和翻译在Android中进行图像处理的一些资源和文章,通过 本专题内容的学习,可以掌握如何在Android上对图片编程,主要包括但不限于如下方向的内容: • Android中支持的图片格式介绍; • Android中图片库介绍 • 图片的显示(本地的,网络的); • 图片的格式转换; • 动画效果; • 图片特效; 本专题旨在帮助更多的人熟悉和掌握图像编程,其中收录和整理的文章是我们挑选、翻译、整理、撰写的 和本专题相关的内容,由于图像处理是个非常复杂、有技术含量的领域,其衍生诸如图片动画、绘制图片 等相当高级一些,本着高效灵活的原则,本期专题暂不包含诸如动画这类文章,会在后续专题中补充。 致谢:致谢: 本期专题得到如下同学的大力支持和积极响应,谢谢你们辛苦老大,谢谢你们为Android发展和普及做出的 贡献。 • apcwowo • 404 • IceskYsl 【eoeAndroid特刊】第二期: 图像处理篇(1),发布版本: Ver 1.0.0(build 2009.05.20) 本文档由eoeAndroid社区组织策划,整理及发布,版权所有,转载请保留! • haiyangjy • zhoubo5262 • binbinming 活动发起地址:活动发起地址: 协作翻译第二期:图像处理篇 http://www.eoeandroid.com/viewthread.php?tid=257&extra=page%3D1 【eoeAndroid特刊】第二期: 图像处理篇(1),发布版本: Ver 1.0.0(build 2009.05.20) 本文档由eoeAndroid社区组织策划,整理及发布,版权所有,转载请保留! 目录导航:目录导航: 第二期: 图像处理篇(1)第二期: 图像处理篇(1).............................................................................................................. 11 写在前面:.................................................................. 1 1. 应用风格和主题........................................................... 4 1.1 如何新建自定义的风格和主题:.......................................... 4 1.2 主题.................................................................. 5 1.2.1 在manifest当中设置主题............................................ 5 1.2.2 在程序当中设置主题................................................ 6 2. Android如何绘制视图...................................................... 7 3. Handling UI Events....................................................... 8 3.1 Event Listeners....................................................... 8 3.2 Event Handlers........................................................ 9 3.3 Touch Mode.......................................................... 10 3.4 Handling Focus...................................................... 10 4. 2D Graphics............................................................. 12 4.1 Drawable............................................................. 12 4.1.1 从资源图像文件中创建............................................. 12 4.1.2 从XML文件中创建.................................................. 13 4.2 ShapeDrawable....................................................... 14 4.3 NinePatchDrawable.................................................... 15 4.4 Tween Animation...................................................... 16 4.5 Frame Animation...................................................... 17 5. 图片的缩放和旋转........................................................ 19 5.1 目标:............................................................... 19 5.2 代码示例:........................................................... 19 5.3 展示效果............................................................. 20 6. 3D 和 OpenGL............................................................ 22 6.1 使用 API............................................................. 22 6.2 附加信息............................................................. 22 7. GLSurfaceView 介绍...................................................... 23 7.1 GLSurfaceView介绍.................................................... 23 7.2 关于用户的输入?...................................................... 24 7.3 GLSurfaceView 其他例子:.............................................. 26 7.4 选择 一个 Surface.................................................... 26 7.5 Continuous Rendering vs. Render When Dirty........................... 27 7.6 Help With Debugging.................................................. 27 8. 其他.................................................................... 28 翻译人员................................................................. 28 BUG提交.................................................................. 28 参加翻译................................................................. 28 关于eoeAndroid........................................................... 28 【eoeAndroid特刊】第二期: 图像处理篇(1),发布版本: Ver 1.0.0(build 2009.05.20) 本文档由eoeAndroid社区组织策划,整理及发布,版权所有,转载请保留! 正文开始 1. 应用风格和主题1. 应用风格和主题 翻译:海阳|haiyang(http://www.haiyangjy.com) 当你设计你的程序的时候,你可以用风格和主题来统一格式化各种屏幕和UI元素。 • 风格是一个包含一种或者多种格式化属性的集合,你可以将其用为一个单位用在布局XML单个元素 当中。比如,你可以定义一种风格来定义文本的字号大小和颜色,然后将其用在View元素的一个 特定的实例。 • 主题是一个包含一种或者多种格式化属性的集合,你可以将其为一个单位用在应用中所有的 Activity当中或者应用中的某个Activity当中。比如,你可以定义一个主题,它为window frame 和panel 的前景和背景定义了一组颜色,并为菜单定义可文字的大小和颜色属性,你可以将这个 主题应用在你程序当中所有的Activity里。 风格和主题都是资源。你可以用android提供的一些默认的风格和主题资源,你也可以自定义你自己的主题 和风格资源。 1.1 如何新建自定义的风格和主题:1.1 如何新建自定义的风格和主题: 1.在res/values 目录下新建一个名叫style.xml的文件。增加一个根节点。 2.对每一个风格和主题,给 如上所示,你可以用元素来为你的风格定义一组格式化的值。在Item当中的名字的属性可以是一个 字符串,一个16进制数所表示的颜色或者是其他资源的引用。 注意在 注意我们用了@符号和?符号来应用资源。@符号表明了我们应用的资源是前边定义过的(或者在前一个项目 中或者在Android 框架中)。问号?表明了我们引用的资源的值在当前的主题当中定义过。通过引用在 里边定义的名字可以做到(panelTextColor 用的颜色和panelForegroundColor中定义的一样)。这中 技巧只能用在XML资源当中。 1.2.1 在manifest当中设置主题1.2.1 在manifest当中设置主题 为了在成用当中所有的Activity当中使用主题,你可以打开AndroidManifest.xml 文件,编 辑标签,让其包含android:theme属性,值是一个主题的名字,如下: 如果你只是想让你程序当中的某个Activity拥有这个主题,那么你可以修改标签。 Android中提供了几种内置的资源,有好几种主题你可以切换而不用自己写。比如你可以用对话框主题来让 你的Activity看起来像一个对话框。在manifest中定义如下: 如果你喜欢一个主题,但是想做一些轻微的改变,你只需要将这个主题添加为父主题。比如我们修改 Theme.Dialog主题。我们来继承Theme.Dialog来生成一个新的主题。