<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > Android平臺的多分辨率屏顯設計及其兼容性測試

Android平臺的多分辨率屏顯設計及其兼容性測試

作者: 時(shí)間:2012-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏
0 引 言

2007 年11 月,Google 公司發(fā)布基于Linux2.6 內核的移動(dòng)終端操作系統- , 由于其開(kāi)源性,得到很多手機廠(chǎng)商的追捧和應用開(kāi)發(fā)者的青睞。近年來(lái)智能手機發(fā)展迅速,運行速度、存儲容量和可靠性等指標有了顯著(zhù)提高[1],當今的智能手機用戶(hù)對應用軟件的舒適性和美觀(guān)性有了更大的期望,應用程序界面友好性已經(jīng)越來(lái)越重要。但是由于 的開(kāi)源性,硬件廠(chǎng)商屏幕分辨率不統一,據統計目前市場(chǎng)上系統手機的分辨率有10 余種,分辨率分布如此廣泛使得開(kāi)發(fā)者在處理多分辨率適應方面遇到了不少難題。文章首先介紹Android 平臺的系統架構及資源管理方法,之后介紹目前開(kāi)發(fā)者在處理多分辨率時(shí)采用的方法,而后重點(diǎn)分析Android 平臺資源加載機制并且結合實(shí)例給出多分辨率的處理步驟及技巧,最后介紹測試多分辨率效果的方法。

1 Android 平臺簡(jiǎn)介

Android 是一個(gè)包括操作系統、中間件和關(guān)鍵應用的移動(dòng)設備軟件堆[2],Android 系統和其他系統一樣,采用分層的架構。由下至上依此為L(cháng)inux 操作系統和驅動(dòng)、程序庫及Android 運行時(shí)環(huán)境、應用程序框架層、應用層。 Android 應用程序的基本組件有Activity、Intent、BroadcaSTReceiver、Service 四種,各個(gè)組件的配置信息以及權限管理、版本管理等配置信息都保存在A(yíng)ndroidManifest.xml 中。

1.1 Android 應用程序資源管理

手機界面上加載的圖片是Android 資源的一種,除此之外還有XML 資源(anim.xml layout.xml 等)以及原數據文件( 音視頻文件等)[3].新建一個(gè)HelloAndroid 的Android 應用程序,默認生成的文件架構包含src,gen,assets,res 等文件夾,以及AndroidManifest.xml 配置文件。src 文件夾中保存的是Android 源代碼,res 文件夾代表應用程序需要使用到的資源文件,gen 包中包含R.java 文件。Res 文件夾中包含的所有資源文件都對應在R.java 中。

當開(kāi)發(fā)者在res/ 目錄中任何一個(gè)子目錄中添加相應類(lèi)型的文件之后,ADT 會(huì )在R.java 文件中相應的匿名內部類(lèi)中國自動(dòng)生成一條靜態(tài)int 類(lèi)型的常量,對添加的文件進(jìn)行索引。

Android 系統采取這種架構使視圖等資源文件與控制代碼分離,實(shí)現松耦合。然而可以使用R.java 文件在代碼中對相應的資源文件進(jìn)行存取,靈活操作。

1.2 一般多分辨率處理方法及其缺點(diǎn)

1.2.1 圖片縮放

基于當前屏幕的精度,平臺自動(dòng)加載任何未經(jīng)縮放的限定尺寸和精度的圖片。如果圖片不匹配,平臺會(huì )加載默認資源并且在放大或者縮小之后可以滿(mǎn)足當前界面的顯示要求。例如,當前為高精度屏幕,平臺會(huì )加載高精度資源(如HelloAndroid中drawable-hdpi 中的位圖資源),如果沒(méi)有,平臺會(huì )將中精度資源縮放至高精度,導致圖片顯示不清晰。

1.2.2 自動(dòng)定義像素尺寸和位置

如果程序不支持多種精度屏幕,平臺會(huì )自動(dòng)定義像素絕對位置和尺寸值等,這樣就能保證元素能和精度160 的屏幕上一樣能顯示出同樣尺寸的效果。例如,要讓W(xué)VGA 高精度屏幕和傳統的HVGA 屏幕一樣顯示同樣尺寸的圖片,當程序不支持時(shí),系統會(huì )對程序慌稱(chēng)屏幕分辨率為320×480,在(10,10)到(100,100)的區域內繪制圖形完成之后,系統會(huì )將圖形放大到(15,15)到(150,150)的屏幕顯示區域。

1.2.3 兼容更大尺寸的屏幕

當前屏幕超過(guò)程序所支持屏幕的上限時(shí),定義supportsscreens元素,這樣超出顯示的基準線(xiàn)時(shí),平臺在此顯示黑色的背景圖。例如,WVGA 中精度屏幕上,如程序不支持這樣的大屏幕,系統會(huì )謊稱(chēng)是一個(gè)320×480 的,多余的顯示區域會(huì )被填充成黑色。

1.2.4 采用 動(dòng)態(tài)繪制圖片

Android 底層提供了 的接口和方法,可以動(dòng)態(tài)繪制圖片,但是這種方式對不熟悉計算機圖形學(xué)的開(kāi)發(fā)者來(lái)講是一個(gè)很大的挑戰。一般開(kāi)發(fā)游戲,采用 方式。

上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: OpenGL Android 虛擬機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>