`
yinter
  • 浏览: 244006 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

零打碎敲学Android(一)—用什么来替代Graphics

阅读更多
一、要想在View中绘制图形,至少需要用到以下三者:

1、Bitmap

Android中使用Bitmap承载图像资源,其默认支持4种图像格式(调用方式,Bitmap.Config.XXXX),分别为ALPHA8、 RGB565、ARGB4444、ARGB8888,单就显示效果而言以ARGB8888效果最佳,ALPHA8效果最差,当然占用资源与之相反。

不过Bitmap本身的运算量非常小,其具体操作大量依赖于native

2、Canvas

Android中使用Canvas对应标准Java应用中的Graphics,其具体操作与Graphics类似,但实际功能却较Graphics为少,需要同Paint配合使用。

与Bitmap近似,Canvas主要实现依赖于OpenGL ES,其本身的运算量非常之小,Canvas本地接口请查API;

3、Paint

用以设定图像的绘制方式,可以同Canvas一道看作Graphics功能的拆分,只有当Canvas与Paint共同使用时,才可能实现Graphics的大部分功能(并非全部)。

Paint依旧大量依赖于本地接口,具体函数请查API;

Android绘图的基本示例:  canvas.drawBitmap(bitmap, 0, 0, paint) \\ canvas代表画布 bitmap作为图像资源 paint决定绘图方式

二、Android的窗口构成,即Activity + View = Form。


Android以Activity类作为窗体容器,以View(或SurfaceView等)绘制所有的按钮及界面,以AndroidManifest.xml配置相关的初始化资源,Android图形应用的一切通过它们衍生开来。

由于Android的线程安全机制并不等同于标准Java应用,invalidate()不能循环绘制View(偶实际试验了,丢到Thread里就死|||),所以View的图形绘制需要通过Handler处理,它将在函数内实现了一个类似于递归的循环线程,结构如下(具体实现请见Android提供的snake示例):

sendMessageDelayed->handleMessage->handleMessage 再次呼叫 sendMessageDelayed->handleMessage 被呼叫->循环

这种线程结构虽然简单且高效,但是很多常见的线程手段却无法在其中实现,因此只适合简单的应用(比如计时器,定时绘图等),复杂的线程结构则需要SurfaceView。

SurfaceView是View的子类,它继承自View。与只能使用Handler方式循环绘制图像的View不同,SurfaceView通过调用一对lockCanvas()和unlockCanvasAndPost()进行绘图,具体实现可见Google提供的LunarLander示例。

根据鄙人实测,View的Handler方式较SurfaceView的lockCanvas()与unlockCanvasAndPost()方式FPS为高,惟独可控性太差,本人推荐在简单应用使用View,在复杂应用使用SurfaceView。

另外xml中屏幕纵、横核定项如下:

screenOrientation="portrait" 纵向屏幕

screenOrientation="landscape" 横向屏幕

与之对应的代码设定方式是在Activity中 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)与 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)

PS:Android中所有图形设备都基于OpenGL ES,默认存在Z-Buffer,绝对不会出现Java桌面应用中的闪烁问题,算是一项进步。

详细内容请查看原文:http://blog.csdn.net/cping1982/archive/2009/10/16/4683949.aspx
分享到:
评论
1 楼 LoveAndr0id 2010-05-10  
谢谢~~受教了~~

相关推荐

    关于开展杜绝零打碎敲事故大讨论心得体会.docx

    在IT行业中,技术安全是至关重要的一个领域,它关乎到系统的稳定运行、数据的保护以及用户的隐私安全。本文主要从杜绝零打碎敲事故的角度,探讨如何在日常工作中强化安全意识,落实安全管理措施,以确保企业的正常...

    夯实基础管理防止杜绝零打碎敲事故发生-安全管理-行业安全-矿山安全.docx

    因此,"夯实基础管理防止杜绝零打碎敲事故发生"成为了一项核心任务。 首先,强化员工的自主保安意识是安全工作的基石。自主保安意味着员工在生产活动中,不受外部因素干扰,依靠自我意识,运用自身的安全知识和技术...

    关于开展杜绝零打碎敲事故大讨论活动总结.docx

    1. **安全文化建设**:杜绝零打碎敲事故大讨论活动体现了企业对安全文化的重视。安全文化强调全员参与,通过开展此类活动,提高员工的安全意识,形成安全第一的工作氛围。 2. **风险预控管理**:城郊矿进行的风险...

    供应科杜绝零打碎敲事故大讨论纪要.docx

    供应科杜绝零打碎敲事故大讨论纪要.docx

    关于开展杜绝零打碎敲事故大讨论活动心得.docx

    ### 关于开展杜绝零打碎敲事故大讨论活动心得 #### 安全管理的重要性与实践策略 煤矿行业的安全问题一直是行业内的重要议题。由于其特殊的工作环境与性质,煤矿事故不仅频繁发生,而且往往会造成严重的人员伤亡。...

    城郊煤矿掘进系统关于杜绝零打碎敲事故大讨论会议纪要.docx

    通过这次会议,城郊煤矿明确了加强安全管理的重要性,并提出了一系列具体的措施来减少零打碎敲事故的发生。这些措施涵盖了教育培训、规章制度执行、员工思想教育等多个方面,为提高煤矿生产安全提供了有力支持。

    广播电视广告学资料.doc

    【广播电视广告学】\n\n广播电视广告学是一门研究如何通过广播、电视等媒介进行广告传播的学科。它涵盖了从无线电广播的起源到现代电视广告的发展历程,以及广告设计、制作、播出和策略制定等多个方面。\n\n1. **...

    软文标准件.pdf

    软文标准件是指在软文写作中使用的一种标准化的方法来生产软文,以达到批量生产的目的。这种方法将软文分为三个阶段:零打碎敲阶段、手工作坊阶段、规模生产阶段。软文标准件的核心是将软文分解成多个标准化的模块,...

    如何策划有效的教研活动灌南县教育局教研室生物兼职教研员朱.pptx

    1. 避免零散学习:教研活动不应只是零打碎敲地阅读理论文章,而应系统地学习和探讨教育理念,提升教师的理论素养。 2. 活跃评课氛围:鼓励所有教师积极参与评课,让每位教师都有机会表达观点,提高评课的深度和质量...

    现场培训卡(副科级每人写5小张).docx

    包保干部的签名确认表明了他们对培训内容的认可,并将监督和指导下属执行所学知识,确保培训效果的落实。同时,培训对象的签名则表示他们已经理解和接受了培训内容,愿意在实际工作中应用这些知识,促进安全生产。

    广播电视广告202110试题整理.pdf

    28. **特技摄影**:在电影或电视中使用特殊技术手段来创造视觉特效。 29. **水平思考法**:一种鼓励创新思维和非线性解决问题的方法。 30. **蒙太奇**:电影和电视中通过剪辑画面以构建叙事或表达情感的技术。 **...

    煤矿调度主任述职报告实用.pdf

    1. **安全管理**:调度主任强调了安全第一的原则,坚决执行国家法律法规和矿内规章制度,通过工作票制度强化非正常作业的安全管理,预防零打碎敲事故。制定并执行严格的事故处理和考核机制,确保机电事故和环节事故...

    安全一号文件.pdf

    该文件指出,公司在2021年加强了"两个能力"建设,即隐患排查能力和瓦斯地质预测预报能力,并推进了矿井运输和零打碎敲事故的专项治理。同时,公司还稳步推动了一种煤矿安全管理新模式,提升了瓦斯治理水平和员工的...

    04-我国人力资源管理的走向(孙健敏).ppt

    【我国人力资源管理的现状及未来走向】\n\n在当今的中国,人力资源管理正在经历一个快速变革的时期。2004年的全国人才工作会议为我国的人力资源管理带来了新的推动力,强调了人才的重要性,同时也暴露了管理中的诸多...

    安全风险分级管控20170602.pptx

    安全风险分级管控是一种重要的安全管理策略,旨在通过系统化的方法识别、评估、控制并减少潜在的安全风险,从而提高生产过程的安全性。2017年的安全风险分级管控主要围绕以下几个方面展开: 1. 术语理解: - 安全...

    安全一号文件.docx

    通过这些措施,公司旨在全面提升瓦斯治理和整体安全管理水平,减少零打碎敲事故,提高职工安全意识和操作技能,确保企业安全平稳发展。同时,文件强调了制度修订、责任落实和问责制度的重要性,以期通过严格的管理和...

    基于员工结构特点的瓦斯爆炸事故预测方法研究

    但日常发生的顶板、机电、运输、放炮等零打碎敲事故与瓦斯爆炸事故有着密切的联系。从不同角度、不同层面剖析了唐山地区近10 a主要生产矿井全部生产死亡事故特点,探讨了员工工龄、年龄和素质等结构特点在瓦斯爆炸...

    强化安全意识规范岗位操作-安全管理-行业安全-矿山安全.docx

    通过上述措施,煤矿企业可以有效强化员工的安全意识,规范其岗位操作,从而提高整体的安全管理水平,减少零打碎敲事故的发生。只有将安全意识内化于心,规范操作外化于行,才能真正实现煤矿的安全生产,保障每一位...

Global site tag (gtag.js) - Google Analytics