官术网_书友最值得收藏!

1.2.5 圖形和多媒體處理

對(duì)于現(xiàn)今的移動(dòng)設(shè)備而言,聲、色、型都是必不可少的組成部分。Android支持MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等主流的圖像和音視頻格式Android支持的格式參見(jiàn):http://developer.android.com/guide/appendix/media-formats.html。

Android的音視頻處理主要依托于開(kāi)源的OpenCORE項(xiàng)目,這是一個(gè)基于C/C++實(shí)現(xiàn)的音視頻處理庫(kù),放在Android的核心類庫(kù)層,可以進(jìn)行多種格式文件的編解碼及流媒體處理。在圖像處理方面,主要是通過(guò)開(kāi)源項(xiàng)目SkiaSkia的官方網(wǎng)站:http://code.google.com/p/skia/。來(lái)支持,它可以幫助讀寫圖像數(shù)據(jù),進(jìn)行位圖到PNG、JPG格式圖像的編解碼。不過(guò),在Android中處理大尺寸的圖像數(shù)據(jù)需要非常小心謹(jǐn)慎,因?yàn)樗枰獙D像數(shù)據(jù)加載到內(nèi)存中來(lái),而每個(gè)Android進(jìn)程僅有16MB的堆空間,一不小心內(nèi)存溢出了,整個(gè)應(yīng)用不可避免就會(huì)崩潰。

Android中對(duì)2D圖形的使用,主要經(jīng)由android.graphics.drawable包來(lái)實(shí)現(xiàn)。該包中的類都是android.graphics.drawable.Drawable基類的具體實(shí)現(xiàn),在實(shí)際工程中碰到的大部分2D圖形、圖像及動(dòng)畫的呈現(xiàn),幾乎都可以通過(guò)它們來(lái)實(shí)現(xiàn)。它不僅支持圖形、圖像、純色、漸變等靜態(tài)效果的繪制,還可以分層、分狀態(tài)地顯示各種動(dòng)畫效果;并且,它支持局部或全局的縮放、拉伸和旋轉(zhuǎn)等操作,從而幫助開(kāi)發(fā)者輕松搭建秀色可餐的應(yīng)用。

在3D處理方面,Android則搭配了OpenGL ES(OpenGL for Embedded System)關(guān)于OpenGL ES的介紹,請(qǐng)參見(jiàn):http://www.khronos.org/opengles/。

開(kāi)發(fā)者可以通過(guò)javax.microedition.khronos.opengles包和android.opengl包,來(lái)使用OpenGL進(jìn)行開(kāi)發(fā)。而對(duì)于很多游戲開(kāi)發(fā)者而言,為了追求更高的效率,可以拋開(kāi)Java的封裝,直接通過(guò)Android NDK提供的OpenGL ES接口來(lái)進(jìn)行開(kāi)發(fā)。本書并不會(huì)詳細(xì)介紹圖形處理方面的知識(shí),對(duì)于大多數(shù)圖形處理的開(kāi)發(fā)者而言,圖形學(xué)知識(shí)和OpenGL的使用才是重點(diǎn),具體的開(kāi)發(fā)平臺(tái)并不會(huì)成為他們的桎梏。

對(duì)于所有多媒體數(shù)據(jù)的操作,內(nèi)存開(kāi)銷永遠(yuǎn)是非常重要的話題。如何在降低內(nèi)存消耗的前提下,更流暢地處理多媒體數(shù)據(jù),本書第12章將會(huì)詳細(xì)講解。

主站蜘蛛池模板: 芦溪县| 广东省| 章丘市| 南和县| 开原市| 射阳县| 伊川县| 宁明县| 乡城县| 聂荣县| 十堰市| 鲁山县| 交口县| 搜索| 马关县| 车致| 手机| 达州市| 河北省| 佛山市| 松江区| 抚远县| 鄯善县| 德阳市| 商河县| 江安县| 杭锦后旗| 梓潼县| 若羌县| 门源| 象州县| 扎鲁特旗| 南江县| 太康县| 呼图壁县| 汉川市| 四平市| 西贡区| 新绛县| 平潭县| 秦安县|