- Android開(kāi)發(fā)精要
- 范懷宇
- 658字
- 2018-12-31 16:21:49
1.2.5 圖形和多媒體處理
對(duì)于現(xiàn)今的移動(dòng)設(shè)備而言,聲、色、型都是必不可少的組成部分。Android支持MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF等主流的圖像和音視頻格式。
Android的音視頻處理主要依托于開(kāi)源的OpenCORE項(xiàng)目,這是一個(gè)基于C/C++實(shí)現(xiàn)的音視頻處理庫(kù),放在Android的核心類庫(kù)層,可以進(jìn)行多種格式文件的編解碼及流媒體處理。在圖像處理方面,主要是通過(guò)開(kāi)源項(xiàng)目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)。
開(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ì)講解。
- HTML5+CSS3王者歸來(lái)
- Java程序設(shè)計(jì)(慕課版)
- Microsoft Exchange Server PowerShell Cookbook(Third Edition)
- Java異步編程實(shí)戰(zhàn)
- SQL Server 2016數(shù)據(jù)庫(kù)應(yīng)用與開(kāi)發(fā)習(xí)題解答與上機(jī)指導(dǎo)
- 深入理解Android:Wi-Fi、NFC和GPS卷
- C語(yǔ)言程序設(shè)計(jì)
- 軟件體系結(jié)構(gòu)
- IBM Cognos TM1 Developer's Certification guide
- Magento 2 Beginners Guide
- Java EE 7 with GlassFish 4 Application Server
- Hands-On Robotics Programming with C++
- Mastering Android Studio 3
- Python Penetration Testing Essentials
- Pandas 1.x Cookbook