江帆
摘 要:目前,Android系統(tǒng)應(yīng)用程序已經(jīng)非常普及,基于Android系統(tǒng)的軟件應(yīng)用于各個行業(yè)之中,由Android編程工具開發(fā)的應(yīng)用軟件可以應(yīng)用于手機、平板電腦以及穿戴設(shè)備。對于移動終端而言,有分辨率較小的手機,也有分辨率較大的平板電腦,如何使得同一款應(yīng)用軟件在不同分辨率的設(shè)備上都具有良好的顯示效果,是Android程序員需要重點考慮的問題。在Android應(yīng)用程序設(shè)計過程中,應(yīng)用XML資源文件,可以很好地解決這個問題。該文詳細闡述了如何應(yīng)用XML文件開發(fā)自適應(yīng)分辨率的Android應(yīng)用程序。
關(guān)鍵詞:XML 資源 Android
中圖分類號:TN919 文獻標識碼:A 文章編號:1674-098X(2017)02(b)-0120-02
1 XML資源概述
XML稱為可擴展標記語言,是一種用于標記電子文件使其具有結(jié)構(gòu)性的標記語言。在Android應(yīng)用程序開發(fā)中,XML稱為布局文件,是Android系統(tǒng)的一類資源文件[1],主要用于構(gòu)建程序界面,再由java代碼將界面文件加載到程序中。
在Android程序開發(fā)的過程中,由于XML文件簡單、明了,能夠?qū)?yīng)用程序的視圖控制邏輯從java代碼中分離出來,放入XML文件中加以控制,方便了程序的復用,更好地體現(xiàn)了MVC(模型-視圖-控制器)編程原則[2],因此,Android系統(tǒng)推薦使用XML布局文件來控制應(yīng)用程序的界面視圖。下列代碼展示了一個XML布局文件的實例。
android:layout_width="match_parent" android:layout_height="match_parent"> 上述XML布局文件在界面中顯示了一個線性布局的界面,在界面中有一個登錄按鈕。 2 自適應(yīng)不同屏幕的資源 Android設(shè)備,如,手機、平板電腦等,其屏幕尺寸和分辨率的差別比較大,而用戶總是希望同一款Android應(yīng)用程序在所有的Android設(shè)備上都能運行,并且保持良好的顯示效果,因此,Android應(yīng)用程序?qū)τ诓煌聊坏倪m應(yīng)性問題,是程序員必須要重點考慮的問題之一。 通常來說,屏幕資源需要考慮以下3個方面。 (1)屏幕尺寸:Android編程工具將設(shè)備的屏幕尺寸分為small(小屏幕)、normal(中等屏幕)、large(大屏幕)、xlarge(超大屏幕)4種類別。 (2)屏幕分辨率:Android編程工具將設(shè)備的屏幕分辨率分為ldpi(低分辨率)、mdpi(中等分辨率)、hdpi(高分辨率)、xhdpi(超高分辨率)、xxhdpi(超超高分辨率)。 (3)屏幕方向:Android編程工具將設(shè)備的屏幕方向分為land(橫向)和port(縱向)。 在編寫Android程序的過程中,為不同尺寸的屏幕設(shè)置用戶界面時,每種用戶界面總有一個最低屏幕尺寸的要求[3],如果程序設(shè)計的分辨率低于該尺寸要求就不能運行。Android系統(tǒng)中屏幕分辨率有5種類型:small(小屏幕)426 dp×320 dp、normal(中等屏幕)470 dp×320 dp、large(大屏幕)640 dp×480 dp、xlarge(超大屏幕)960 dp×720 dp、xxhdpi(超超高分辨率)1280 dp×720 dp。 3 開發(fā)兼顧屏幕分辨率的Android應(yīng)用 下面,我們以一個實例——顯示圖書信息,來說明如何開發(fā)一個自適應(yīng)屏幕分辨率的Android應(yīng)用程序。為了說明如何自適應(yīng)不同的屏幕分辨率,在此應(yīng)用程序中,我們預先規(guī)定兩種分辨率:large分辨率和600 dpi分辨率。 打開Android編程工具軟件(Eclipse或Android Studio),在res(資源文件目錄)目錄下建立兩個文件夾:values-large和values-sw600dp,其中values-large目錄用于存放large分辨率的XML文件,values-sw600dp目錄用于存放小分辨率的XML文件[4]。 建立一個XML文件booList.xml,此文件用于顯示在小分辨率屏幕上的圖書信息,存放在values-sw600dp目錄中,其關(guān)鍵代碼如下。 android:layout_width="match_parent" android:layout_height="match_parent" /> 再建立一個XML文件booList_large.xml,此文件用于顯示在大分辨率屏幕上的圖書信息,存放在values-large目錄中,其關(guān)鍵代碼如下。 android:orientation="horizontal" 在res(資源文件目錄)目錄下再建立一個ref.xml文件,該資源文件用于程序開發(fā)過程中定義的各種引用項,在該程序中,引用大分辨率屏幕的XML資源文件。 以上3個XML文件建立好之后,接下來在Activity(Android應(yīng)用界面)加載布局文件時,會根據(jù)程序當前運行的屏幕類型,自動選擇合適的界面布局文件,在大屏幕的平板電腦上,Activity將會加載booList_large.xml布局文件;在小屏幕的手機上,Activity將會加載booList.xml布局文件。 上述程序代碼中,使用if語句判斷加載的界面布局文件是否適應(yīng)不同類型的屏幕尺寸,以達到自適應(yīng)屏幕分辨率的效果。 4 結(jié)語 使同一款Android應(yīng)用程序能夠自動適應(yīng)不同尺寸的屏幕分辨率,是程序開發(fā)過程中必須要考慮的重點問題之一,應(yīng)用XML文件進行界面布局能夠較好地解決這個問題。在Android程序開發(fā)的過程中,由于XML文件簡單、明了,能夠?qū)?yīng)用程序的視圖控制邏輯從java代碼中分離出來,放入XML文件中加以控制界面布局[5],很好地體現(xiàn)了MVC(模型—視圖—控制器)編程原則,能夠開發(fā)出自適應(yīng)屏幕分辨率的Android應(yīng)用程序。 參考文獻 [1] 范成臣,劉文春.淺析基于XML的資源描述框架在Web中的應(yīng)用[J].文摘版:工程技術(shù),2015(32):299. [2] 楊沛釗,陳嘉霖,吳瑞生,等.基于XML菜譜可定制的Android點菜系統(tǒng)的設(shè)計與實現(xiàn)[J].現(xiàn)代計算機:上下旬,2014(5):66-72. [3] 楊靜.基于Android中XML解析器的分析[J].福建電腦,2014(11):120-122. [4] 張釗.基于Android的車輛定位客戶端XML解析技術(shù)[J].電腦編程技巧與維護,2015(10):56-57. [5] 黃源,吳文明.論XML文檔的驗證模式[J].科研,2016(8): 192-193.