新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Android平臺的多分辨率解決方案

        基于Android平臺的多分辨率解決方案

        作者: 時間:2012-03-05 來源:網(wǎng)絡(luò) 收藏

        2 多處理方案詳解

        2.1 基本術(shù)語介紹

        2.1.1 屏幕尺寸

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

        2.1.2 屏幕密度Density

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

        2.1.3 方向Orientation

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

        2.1.4 分辨率Resolution

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

        2.2 手機屏幕的分類

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

        圖1 Android 中的屏幕分類

        圖1 Android 中的屏幕分類

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

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

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

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

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

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



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 博乐市| 永昌县| 特克斯县| 都昌县| 安西县| 信丰县| 克东县| 凯里市| 太原市| 海伦市| 平原县| 沅陵县| 玉林市| 罗定市| 新化县| 南郑县| 库尔勒市| 波密县| 永兴县| 云安县| 建德市| 合肥市| 喀喇沁旗| 宁陵县| 兴安盟| 嵩明县| 扬州市| 体育| 老河口市| 黄浦区| 怀集县| 叶城县| 昌图县| 团风县| 天柱县| 镇巴县| 太白县| 疏勒县| 镇安县| 白水县| 湟中县|