新聞中心

        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.



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 察隅县| 瓮安县| 玉田县| 盘锦市| 环江| 益阳市| 壤塘县| 吴江市| 千阳县| 绥滨县| 东兰县| 古丈县| 林芝县| 沧州市| 宝清县| 四平市| 威宁| 班戈县| 师宗县| 东安县| 五河县| 金山区| 拜城县| 洪雅县| 顺昌县| 大名县| 黄平县| 灌云县| 广河县| 将乐县| 天峻县| 建德市| 白玉县| 托克逊县| 周口市| 都江堰市| 浦城县| 慈利县| 河池市| 永德县| 寿宁县|