• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Android平臺的多分辨率解決方案

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

    作者: 時間:2012-03-05 來源:網絡 收藏

    2 多處理方案詳解

    2.1 基本術語介紹

    2.1.1 屏幕尺寸

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

    2.1.2 屏幕密度Density

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

    2.1.3 方向Orientation

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

    2.1.4 分辨率Resolution

    屏幕上所有的像素點數目,一般用480*800 的形式來表示。密度無關像素dp: 中虛擬的像素單位,定義成一種密度無關的形式,像素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 文件夾下新建目錄,命名為resources_name>-qualifier> 這種格式,其中resources_name> 為標準資源名稱,例如drawable 或者layout;qualifier> 即修飾符,指定對應的屏幕參數,比如normal/small/large,hdpi/mdpi/ldpi,land/port,long/notlong 等。

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

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



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 灵宝市| 永寿县| 宣化县| 闸北区| 温宿县| 焉耆| 烟台市| 陵川县| 通榆县| 义马市| 慈溪市| 昭平县| 修文县| 北辰区| 台安县| 宁夏| 随州市| 通山县| 辽宁省| 三江| 嘉定区| 田林县| 泽库县| 乌兰浩特市| 辽宁省| 贵州省| 津南区| 集贤县| 务川| 封开县| 北海市| 武宁县| 化德县| 赫章县| 岫岩| 道孚县| 木兰县| 寿宁县| 故城县| 兰溪市| 甘洛县|