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