《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于Android平臺的多分辨率解決方案
基于Android平臺的多分辨率解決方案
摘要: 文章首先介紹Android 平臺的系統架構及資源管理方法,之后介紹目前開發者在處理多分辨率時采用的方法,而后重點分析Android 平臺資源加載機制并且結合實例給出多分辨率的處理步驟及技巧,最后介紹測試多分辨率效果的方法。
關鍵詞: Android 手機 分辨率
Abstract:
Key words :

0 引 言

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

1 Android 平臺簡介

Android 是一個包括操作系統、中間件和關鍵應用的移動設備軟件堆[2],Android 系統和其他系統一樣,采用分層的架構。由下至上依此為Linux 操作系統和驅動、程序庫及Android 運行時環境、應用程序框架層、應用層。 Android 應用程序的基本組件有Activity、Intent、BroadcaSTReceiver、Service 四種,各個組件的配置信息以及權限管理、版本管理等配置信息都保存在AndroidManifest.xml 中。

1.1 Android 應用程序資源管理

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

當開發者在res/ 目錄中任何一個子目錄中添加相應類型的文件之后,ADT 會在R.java 文件中相應的匿名內部類中國自動生成一條靜態int 類型的常量,對添加的文件進行索引。

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

1.2 一般多分辨率處理方法及其缺點

1.2.1 圖片縮放

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

1.2.2 自動定義像素尺寸和位置

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

1.2.3 兼容更大尺寸的屏幕

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

1.2.4 采用OpenGL 動態繪制圖片

Android 底層提供了OpenGL 的接口和方法,可以動態繪制圖片,但是這種方式對不熟悉計算機圖形學的開發者來講是一個很大的挑戰。一般開發游戲,采用OpenGL 方式。

1.2.5 多個apk 文件

Symbian 和傳統的J2ME 就是采用這種方式,為一款應用提供多個分辨率版本,用戶根據自己的需求下載安裝相應的可執行文件。針對每一種屏幕單獨開發應用程序不失為一種好方法,但是目前Google Market 對一個應用程序多個分辨率版本的支持還不完善,開發者還是需要盡可能使用一個apk 文件適應多個分辨率。

2 多分辨率處理方案詳解

2.1 基本術語介紹

2.1.1 屏幕尺寸

真正的物理尺寸,屏幕對角線的長度,單位是英寸。為了簡化起見,Android 把支持的所有物理尺寸分成了4 組:small,normal, large, extra large.

2.1.2 屏幕密度Density

一定物理范圍的像素的個數,單位通常是dpi(dots perinch), 即每英寸的點數。例如一個低分辨率屏幕相對于高分辨率屏幕在一定的物理區域內包含的像素點要少。為了簡化起見,Android 將所有的屏幕密度分成四組:low, medium,high 和extra high.

2.1.3 方向Orientation

從用戶視角來看的屏幕的方向,Portrait 縱向和Landscape 橫向。

2.1.4 分辨率Resolution

屏幕上所有的像素點數目,一般用480*800 的形式來表示。密度無關像素dp: Android 平臺中虛擬的像素單位,定義成一種密度無關的形式,像素px 和dp 的轉換公式為 px =dp*(dpi/160)。在界面開發中應使用dp 作為像素單位,從而保證在不同的屏幕密度上控件所占的實際px 因密度而自動調整。

2.2 手機屏幕的分類

Android 采用兩種標準對屏幕進行分類。按照屏幕尺寸分為四組small, normal, large, extra large;按照屏幕密度分為四組 low, medium ,high 和extra high,其分界線如圖1所示。

圖1 Android 中的屏幕分類

圖1 Android 中的屏幕分類

為了優化程序UI,讓其適應多種分辨率并能清晰顯示,一般情況下需要為不同屏幕大小密度提供不同的圖片文件和對應的布局文件,在運行的時候,Android 系統會根據當前設備的屏幕大小及密度等信息,選擇加載其中一套匹配的資源加以運行,從而達到適應多分辨率的效果。

2.3 Android 支持多分辨率原理及步驟

由以上分析,默認的加載方式都不能很好地適應不同的分辨率,Android 從1.6 開始支持多種分辨率的處理,原理簡而言之就是根據屏幕參數,動態加載資源文件。在Android 項目文件結構中,drawable 文件夾下包含三個子文件夾,分別為drawable-hdpi, drawable-mdpi, drawable-ldpi, 分別存放hdpi,mdpi,ldip 的位圖。應用程序運行時,Android 系統會根據當前設備的屏幕大小、分辨率、屏幕密度、方向、長寬比等信息,選擇相應文件夾進行加載。Android 配置修飾符的定義規則如下:

1)在res 文件夾下新建目錄,命名為- 這種格式,其中 為標準資源名稱,例如drawable 或者layout; 即修飾符,指定對應的屏幕參數,比如normal/small/large,hdpi/mdpi/ldpi,land/port,long/notlong 等。

2)在步驟1 新建的文件夾中存入相應的資源,比如位圖資源或者layout 資源,資源文件的名字必須與默認資源文件的名字相同。例如:

3)Android 系統支持多分辨率的機制離不開Android-Manifest.xml 文件的supports-screen 元素,若應用程序要適應多種分辨率,需要將anyDensity 設置為true.

2.4 界面設計技巧

前面的部分已經詳細講解了如何架構應用程序使其更好地適應多種分辨率屏幕,此外,在界面設計和控制中我們還應該掌握一些原則或者技巧,從而使應用程序界面友好、適應性強。

1)在XML layout 文件中定義長度的時候,最好使用wrap_content,fill_parent, 或者dp 進行描述,這樣可以保證在屏幕上面展示的時候有合適的大小。例如,一個view layout_width="100dip",在 HVGA@160 density 的設備上顯示100 個px,而在 WVGA@240 density 的設備上顯示150 個px,但是所占的物理尺寸時相同的。

2)在Activity 或者其他控制視圖加載的代碼處,不要使用像素單位的硬編碼。

3)不要使用AbsoluteLayout.絕對布局是由AndroidUI toolkit 提供的布局容器中的一種。但是與其他layout 不一樣的是,AbsoluteLayout 使用固定的位置表示,使得在不同的屏幕上面顯示效果不好,因此AbsoluteLayout 在sdk1.6 及以后的版本中被棄用了。

4)為不同屏幕密度的手機,提供不同的位圖資源,可以使得界面清晰無縮放。

3 多分辨率兼容性測試方案

在產品發行之前,要在所有的目標手機上進行全面的測試。Android SDK 包含了一套測試多分辨率的機制??梢宰约憾ㄖ芶vd 作為應用程序的測試環境,avd 會模擬真實機器的屏幕大小和密度。例如圖2 為模擬器的列表,可以將程序運行在這四個模擬器中進行多分辨率的測試。

圖2

圖2 虛擬機列表

4 結論

本文介紹Android 平臺的體系架構和分辨率相關的術語,詳細論述資源加載原理和多分辨率處理的詳細流程,最后給出了測試應用程序是否適應多種分辨率的方法。結合本人實踐經驗進行講述,內容深入淺出,較完整地論述了如何使應用程序盡可能多地適應多種分辨率屏幕。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          亚洲精品麻豆| 久久亚洲欧美国产精品乐播| 午夜精品久久久久影视| 欧美不卡激情三级在线观看| 欧美日韩综合在线免费观看| 久久久久高清| 亚洲裸体俱乐部裸体舞表演av| 国产一区二区观看| 欧美激情国产日韩精品一区18| 亚洲免费视频中文字幕| 欧美一区二区三区四区在线观看地址| 亚洲福利精品| 欧美在线观看视频| 亚洲免费一在线| 久久伊人精品天天| 亚洲视频欧洲视频| 国产精品欧美久久久久无广告| 免费不卡中文字幕视频| 国产精品乱人伦一区二区| 国产一区二区日韩精品欧美精品| 亚洲午夜成aⅴ人片| 国产亚洲欧美日韩精品| 国内一区二区在线视频观看| 欧美三区在线视频| 国产精品亚洲精品| 久久精品国产亚洲精品| 一区二区三区免费网站| 欧美一级在线视频| 欧美中文在线观看| 激情成人中文字幕| 久久夜色精品国产| 亚洲精选91| 欧美三级视频| 国产亚洲女人久久久久毛片| 美女啪啪无遮挡免费久久网站| 亚洲男人天堂2024| 欧美另类女人| 欧美日韩在线播放一区| 一区二区三区日韩在线观看| 亚洲欧美日韩区| 亚洲激情啪啪| 亚洲天堂网在线观看| 国产精品欧美风情| 欧美成人激情视频免费观看| 亚洲一区视频在线观看视频| 国产欧美日韩精品专区| 在线观看一区二区视频| 亚洲国产精品激情在线观看| 欧美日韩精品久久久| 亚洲高清视频一区| 国产毛片一区| 亚洲一区二区三区四区五区黄| 久久综合九色综合欧美狠狠| 欧美激情二区三区| 毛片一区二区三区| 欧美精品免费在线观看| 国产一区二区三区av电影| 国产精品视频导航| 老鸭窝毛片一区二区三区| 国产精品久久久免费| 久久av红桃一区二区小说| 国产精品嫩草99av在线| 欧美亚洲视频在线看网址| 亚洲欧美电影院| 亚洲精品中文字幕在线| 日韩视频在线永久播放| 欧美亚洲一级片| 亚洲午夜在线观看视频在线| 欧美 日韩 国产 一区| 老司机免费视频一区二区三区| 国产亚洲欧美色| 伊人久久大香线蕉av超碰演员| av成人黄色| 欧美日韩视频在线一区二区| 国产精品最新自拍| 亚洲深夜福利网站| 欧美一区二区观看视频| 国产一区二区剧情av在线| 欧美激情国产精品| 午夜国产欧美理论在线播放| 在线精品一区二区| 亚洲精品日韩一| 欧美久久久久免费| 欧美在线3区| 国产美女高潮久久白浆| 99视频在线观看一区三区| 国产精品多人| 国产精品午夜av在线| 亚洲人成艺术| 久久精品在线播放| 欧美日本精品| 久久精品99久久香蕉国产色戒| 亚洲午夜精品一区二区三区他趣| 亚洲免费电影在线观看| 欧美日韩在线视频首页| 国产精品理论片| 亚洲图片欧洲图片av| 国产精品永久免费在线| 亚洲欧美日韩国产精品| 国产视频不卡| 久久婷婷国产综合国色天香| 一本一道久久综合狠狠老精东影业| 国产一区二区三区在线观看网站| 欧美三日本三级少妇三99| 久久久久国产精品一区二区| 久久久国产亚洲精品| 欧美精品久久久久久久久老牛影院| 另类av导航| 欧美精品久久99久久在免费线| 亚洲女同同性videoxma| 亚洲午夜久久久久久久久电影院| 亚洲男人的天堂在线| 久久精品国产一区二区电影| 国产主播喷水一区二区| 亚洲视频在线观看网站| 国产精品高清免费在线观看| 久久精品一区二区国产| 玖玖综合伊人| 亚洲一区成人| 欧美日韩国产免费观看| 国产精品激情| 国产精品久久久久久久久动漫| 在线观看三级视频欧美| 欧美激情精品久久久久久免费印度| 麻豆精品国产91久久久久久| 久久综合精品国产一区二区三区| 一区二区三区欧美成人| 国产精品日韩在线播放| 美女主播一区| 在线精品国产成人综合| 欧美日韩八区| 久久精品网址| 亚洲天堂av图片| 你懂的网址国产 欧美| 亚洲裸体在线观看| 国产精品久久久久久久久久久久久久| 国产精品视频99| 亚洲一区二区三区四区在线观看| 亚洲国产精品一区二区www| 一本久久青青| 久久久久久久综合日本| 国内成人在线| 亚洲一二三区在线观看| 亚洲影音一区| 亚洲欧美电影在线观看| 黑人巨大精品欧美黑白配亚洲| 亚洲剧情一区二区| 亚洲国内精品| 国产精品视频999| 狠久久av成人天堂| 欧美视频日韩| 欧美亚洲系列| 欧美日韩一区二区精品| 久久久久久**毛片大全| 久久久亚洲国产天美传媒修理工| 国模精品一区二区三区色天香| 亚洲一区二区三| 噜噜噜在线观看免费视频日韩| 影音先锋久久资源网| 影音先锋亚洲一区| 亚洲国产天堂久久综合网| 亚洲欧美日韩在线不卡| 一区二区三区在线视频观看| 国产精品狠色婷| 欧美日韩精品免费观看视一区二区| 美日韩精品免费观看视频| 99热这里只有精品8| 亚洲高清自拍| 美女国内精品自产拍在线播放| 一区二区三区三区在线| 亚洲福利视频免费观看| 国产精品亚洲成人| 在线观看一区| 亚洲欧洲在线视频| 久久久国产精彩视频美女艺术照福利| 美女黄色成人网| 亚洲人成网在线播放| 亚洲黄页视频免费观看| 亚洲国产精品久久人人爱蜜臀| 在线精品国精品国产尤物884a| 国产精品另类一区| 国产日韩欧美中文| 国产精品视频福利| 亚洲欧美日韩国产综合在线| 久久国产夜色精品鲁鲁99| 亚洲欧美精品在线| 中文亚洲欧美| 免费成人激情视频| 国产精品三区www17con| 欧美日本视频在线| 亚洲国产国产亚洲一二三| 国产精品久久久久影院亚瑟| 久久九九99视频| 国外成人在线视频| 欧美日本韩国| 亚洲综合国产激情另类一区| 国产欧美日韩另类一区| 欧美日韩一区二区视频在线| 香蕉国产精品偷在线观看不卡| 一区二区三区黄色| 国产精品大片| 99综合电影在线视频| 国产一区二三区| 久久不射中文字幕| 国产一区二区丝袜高跟鞋图片| 欧美日韩的一区二区| 久久免费偷拍视频| 1000部国产精品成人观看| 久久久999| 欧美日韩在线三级| 在线亚洲一区观看| 欧美精品一区三区| 欧美一级电影久久| 欧美日韩另类视频| 国产日韩欧美亚洲| 欧美视频第二页| 欧美大片va欧美在线播放| 日韩视频第一页| 国产午夜精品理论片a级大结局| 欧美一级片久久久久久久| 一本一道久久综合狠狠老精东影业| 国产精品美女主播在线观看纯欲| 亚洲国产综合91精品麻豆| 亚洲系列中文字幕| 亚洲天堂成人在线视频| 亚洲伦理网站| 黄色国产精品一区二区三区| 亚洲精品久久久久久久久久久久久| 午夜精品亚洲| 在线视频一区二区| 国产精品日本欧美一区二区三区| 久久综合九色综合欧美狠狠| 香港成人在线视频| 一本大道久久a久久综合婷婷| 亚洲综合色丁香婷婷六月图片| 国产日韩欧美一区二区三区四区| 亚洲国产91| 欧美精品18| 免费一区二区三区| 亚洲欧美在线视频观看| 欧美成年人视频| 亚洲精品美女| 久久在线精品| 亚洲第一区在线观看| 国产一区视频在线观看免费| 欧美日韩影院| 国产精品白丝jk黑袜喷水| 理论片一区二区在线| 亚洲高清123| 免费日韩av电影| 久久国产精品99国产精| 欧美视频中文在线看| 国产一区二区精品久久91| 欧美大片91| 亚洲区一区二| 久久大香伊蕉在人线观看热2| 欧美成人黑人xx视频免费观看| 一本久道久久综合婷婷鲸鱼| 一本一本久久a久久精品牛牛影视| 国产精品一区三区| 亚洲国产欧洲综合997久久| 1024成人| 午夜精品视频在线观看| 国产在线高清精品| 欧美日本簧片| 久久久夜夜夜| 性欧美video另类hd性玩具| 国产欧美日韩综合一区在线观看| 国产精品亚洲精品| 亚洲乱码日产精品bd| 国产偷国产偷精品高清尤物| 国产精品免费视频观看| 99这里只有久久精品视频| 国产美女诱惑一区二区| 亚洲黄色一区二区三区| 久久精品国产亚洲高清剧情介绍| 欧美多人爱爱视频网站| 玖玖玖免费嫩草在线影院一区| 欧美在线亚洲一区| 国产精品香蕉在线观看| 亚洲欧美成人一区二区三区| 国产精品一区二区女厕厕| 欧美伦理a级免费电影| 国产日韩一区二区三区在线播放| 欧美精品亚洲精品| 国产精品swag| 美女主播视频一区| 亚洲视频免费| 欧美日韩麻豆| 亚洲丶国产丶欧美一区二区三区| 美日韩丰满少妇在线观看| 亚洲愉拍自拍另类高清精品| 欧美一级网站| 一区二区三区日韩精品| 欧美日韩精品免费观看视频完整| 欧美一区免费| 亚洲无线视频| 国语精品中文字幕| 国产精品xxxav免费视频| 亚洲专区一区| 狠狠色综合日日| 另类av导航| 欧美黄色小视频| 亚洲一二三区视频在线观看| 国产欧美一区二区精品忘忧草| 国产色产综合色产在线视频| 欧美区亚洲区| 国产精品婷婷午夜在线观看| 亚洲女同同性videoxma| 黄色欧美成人| 亚洲欧美影音先锋| 亚洲一区日韩在线| 午夜久久电影网| 亚洲第一区在线观看| 午夜精品福利一区二区三区av| 欧美大香线蕉线伊人久久国产精品| 久久免费高清| 欧美**人妖| 久久国产手机看片| 99re视频这里只有精品| 国产一区免费视频| 欧美体内谢she精2性欧美| 欧美精品91| 一区二区视频免费在线观看| 免费成年人欧美视频| 欧美日韩少妇| 久久夜色撩人精品| 欧美视频在线观看一区二区|