Android中XML文件的使用方法-創(chuàng)新互聯(lián)

這篇文章主要介紹了Android中XML文件的使用方法,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

為白朗等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及白朗網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、白朗網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

Android XML文件使用的示例代碼

一、布局文件:在layout目錄下,使用比較廣泛;

  我們可以為應(yīng)用定義兩套或多套布局,例如:可以新建目錄layout_land(代表手機(jī)橫屏布局),layout_port(代表手機(jī)豎屏布局),系統(tǒng)會(huì)根據(jù)不同情況自動(dòng)找到最合適的布局文件,但是在同一界面的兩套不同布局文件的文件名應(yīng)該是相同的,只是放在了兩個(gè)不同的目錄下。

二、圖片文件:在drawable目錄下,從2.1版本以后分為三個(gè)目錄,

drawable-hdpi里面存放高分辨率的圖片,如WVGA (480×800),FWVGA (480×854)

drawable-mdpi里面存放中等分辨率的圖片,如HVGA (320×480)

drawable-ldpi里面存放低分辨率的圖片,如QVGA (240×320)

系統(tǒng)會(huì)根據(jù)機(jī)器的分辨率來(lái)分別到這幾個(gè)文件夾里面去找對(duì)應(yīng)的圖片?! ?/p>

在開發(fā)程序時(shí)為了兼容不同平臺(tái)不同屏幕,建議各自文件夾根據(jù)需求均存放不同版本圖片。

我們可以將已經(jīng)做好的圖片放到該目錄下,或者通過(guò)自定義XML文件來(lái)實(shí)現(xiàn)想要的圖片,例如我們可以定義shapge_1.xml放到drawable目錄下,內(nèi)容如下:

<shape xmlns:android="http://schemas.android.com/apk/res/android"   android:shape="oval"> 
<!--android:shape="oval"表示所要繪制的圖形是一個(gè)橢圓,默認(rèn)是rectangle,長(zhǎng)方形-->
<gradient 
    android:startColor="#0055ff88" 
    android:centerColor="#0055ff00" 
    android:centerY="0.75" 
    android:endColor="#00320077" 
    android:angle="270" 
/> 
<!--gradient 產(chǎn)生顏色漸變 android:angle 從哪個(gè)角度開始變 只有90的整數(shù)倍可以 -->
<solid android:color="#ff4100ff"/> 
<!--solid表示圖形是實(shí)心的,填充里面,#ff4100ff為填充顏色-->
<stroke 
    android:width="2dp"
    android:color="#ee31ff5e" 
    android:dashWidth="3dp" 
    android:dashGap="2dp" /> 
<!-- 描邊 采用那樣的方式將外形輪廓線畫出來(lái),width表示筆的粗細(xì),dashWidth表示小橫線的寬度,dashGap表示小橫線之間的距離-->
<padding
    android:left="7dp"
    android:top="7dp"
    android:right="7dp" 
    android:bottom="7dp" /> 
<!--和CSS中的padding應(yīng)該是一個(gè)道理-->
<corners android:radius="6dp" /> 
<!--corners表示是有半徑為5像素的圓角-->
</shape>

當(dāng)我們想讓一個(gè)控件根據(jù)不同狀態(tài)顯示不同圖片,可以直接在程序中控制,也可以在drawable目錄建立XML文件達(dá)到相同的效果,例如:我們可以在drawable目錄下新建文件button_back.xml

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item  android:state_pressed="false"android:drawable="@drawable/xxx1" />
    <item  android:state_pressed="true"  android:drawable="@drawable/xxx2" />
    <item  android:state_focused="true"  android:drawable="@drawable/xxx3" />
    <-- 這里還可以加N多效果和動(dòng)作 只要你用的到 -->
    <item  android:drawable="@drawable/xxx4" />
</selector>

以上XML文件可以實(shí)現(xiàn)一個(gè)控件(假設(shè)為button),獲取焦點(diǎn),按下按鈕,正常狀態(tài)下顯示不同圖片的效果,只需要在定義控件是引用該文件名即可,例如:

<Button
     android:id="@+id/Button"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:background="@drawable/button_add_x">
</Button>
<!--android:background="@drawable/button_back"指向button_back.xml文件-->

但是當(dāng)我們的條件不是系統(tǒng)已有的事件類型,例如根據(jù)ImageView根據(jù)一個(gè)變量var的值的不同顯示不同的圖片,應(yīng)該怎么辦呢?可以在程序中寫如下代碼

if (條件1)
{ 
image.setBackground(R.id.xxx1); 
}
else if (條件2)
{ 
image.setBackground(R.id.xxx2); 
} ...

或者可以用另一個(gè)簡(jiǎn)便的方法實(shí)現(xiàn)相同的功能,在res/drawable下建立一個(gè)xml文件,內(nèi)容如下

<level-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:maxLevel="9" android:drawable="@drawable/battery_0" />
    <item android:maxLevel="39" android:drawable="@drawable/battery_1" />
    <item android:maxLevel="69" android:drawable="@drawable/battery_2" />
    <item android:maxLevel="89" android:drawable="@drawable/battery_3" />
    <item android:maxLevel="100" android:drawable="@drawable/battery_4" />
</level-list>

然后在layout中把imageview的src設(shè)置成已創(chuàng)建好的xml文件 ,程序中變換圖片時(shí),只需要使用 imageview.getDrawable().setLevel(50);
Android會(huì)根據(jù)level的值自動(dòng)選擇對(duì)應(yīng)的圖片。手機(jī)顯示剩余電量就是用這個(gè)方法來(lái)顯示不同圖片的。

三、菜單文件:在menu目錄下,寫代碼時(shí)只需在onCreateOptionsMenu方法中用MenuInflater裝載進(jìn)去就OK了。格式如下,

<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/enabled_item"
        android:title="Enabled"
        android:icon="@drawable/stat_happy" />

    <item android:id="@+id/disabled_item"
        android:title="Disabled"
        android:enabled="false"
        android:icon="@drawable/stat_sad" />

    <item android:id="@+id/enabled_item_2"
        android:title="Enabled"
        android:icon="@drawable/stat_happy" />

    <item android:id="@+id/disabled_item_2"
        android:title="Disabled"
        android:enabled="false"
        android:icon="@drawable/stat_sad" />
</menu>

四、resource文件,在values目錄下,之所以稱之為resource文件,是因?yàn)関alues目錄下xml文件都是以resource作為根節(jié)點(diǎn),

  1.strings.xml  定義字符串的文件,格式如下: 

<resources>
    <string name="hello">Hello World!</string>
    <string name="app_name">我的應(yīng)用程序</string>
</resources>

  2.colors.xml  定義顏色的文件,格式如下:

<resources>
    <!--定義圖片顏色-->
    <drawable name="screen_background_black">#ff000000</drawable>
    <drawable name="translucent_background">#e0000000</drawable>
    <drawable name="transparent_background">#00000000</drawable>
    <!--定義文字顏色-->
    <color name="solid_red">#f00</color>
    <color name="solid_blue">#0000ff</color>
    <color name="solid_green">#f0f0</color>
    <color name="solid_yellow">#ffffff00</color>
</resources>

  3.arrays.xml  定義數(shù)組的文件,格式如下:

<resources>
    <string-array name="planets">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
        <item>Pluto</item>
    </string-array>

    <integer-array name="numbers">
        <item>100</item>
        <item>500</item>
        <item>800</item> 
    </integer-array>
</resources>

4.styles.xml  定義樣式的文件,分為兩種用途:

   Style:以一個(gè)單位的方式用在布局XML單個(gè)元素(控件)當(dāng)中。 例如:我們可以為TextView定義一種樣式風(fēng)格,包含文本的字號(hào)大小和顏色,然后將其用在TextView特定的實(shí)例。
   Theme:以一個(gè)單位的方式用在應(yīng)用中所有的Activity當(dāng)中或者應(yīng)用中的某個(gè) Activity當(dāng)中。 比如,我們可以定義一個(gè)Theme,它為window frame和panel 的前景和背景定義了一組顏色,并             為菜單定義可文字的大小和顏色屬性,可以將這個(gè)Theme應(yīng)用在你程序當(dāng)中所有的Activity里。

<resources>
   <!--Theme,可以用來(lái)定義activity的主題-->
   <style name="Theme.Transparent">
        <item name="android:windowIsTranslucent">true</item>
        <item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
        <item name="android:windowBackground">@drawable/transparent_background</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:colorForeground">#fff</item>
    </style>
    <!--Style,可以用來(lái)定義某個(gè)View元素,這里是ImageView的樣式-->
    <style name="ImageView120dpi">
        <item name="android:src">@drawable/stylogo120dpi</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>
</resources>

個(gè)人認(rèn)為,其實(shí)不管是Theme還是Style,其實(shí)只是應(yīng)用的范圍不同而已,區(qū)分的話應(yīng)該是根據(jù)android:name="xxxx"的xxxx來(lái)區(qū)分吧,很明顯是不同的。

  5.dimen.xml  定義單位的文件,android中度量單位有以下幾種:

    px(象素): 屏幕實(shí)際的象素,常說(shuō)的分辨率1024*768pixels,就是橫向1024px, 縱向768px,不同設(shè)備顯示效果相同。

    in(英寸): 屏幕的物理尺寸, 每英寸等于2.54厘米。

    mm(毫米): 屏幕的物理尺寸。

    pt(點(diǎn)) : 屏幕的物理尺寸。1/72英寸。

    dp/dip : 與密度無(wú)關(guān)的象素,一種基于屏幕密度的抽象單位。在每英寸160點(diǎn)的顯示器上,1dp = 1px。但dp和px的比例會(huì)隨著屏幕密度的變化而改變,不同設(shè)備有不同的顯示效果。

    sp : 與刻度無(wú)關(guān)的象素,主要用于字體顯示best for textsize,作為和文字相關(guān)大小單位。

<resources> 
    <dimen name="one_pixel">1px</dimen> 
    <dimen name="double_density">2dp</dimen> 
    <dimen name="sixteen_sp">16sp</dimen> 
</resources>

 6.attrs.xml  定義屬性的文件,主要用在自定義的組件中,具體使用方法會(huì)在后續(xù)的如何使用自定義組件中詳細(xì)介紹,其格式如下:

<resources>     
    <declare-styleable name="MyView">     
        <attr name="textColor" format="color" />     
        <attr name="textSize" format="dimension" />     
    </declare-styleable>     
</resources>

五、動(dòng)畫文件  在anim目錄下,動(dòng)畫資源分為兩種,

1.實(shí)現(xiàn)圖片的translate、scale、rotate、alpha四種變化,還可以設(shè)置動(dòng)畫的播放特性,稱為Tween動(dòng)畫。

<set xmlns:android="http://schemas.android.com/apk/res/android">               
    <translate android:interpolator="@android:anim/accelerate_interpolator"
         android:fromXDelta="0" android:toXDelta="200" android:fromYDelta="0"
         android:toYDelta="180" android:duration="2000" />
    <scale android:interpolator="@android:anim/accelerate_interpolator"
         android:fromXScale="1.0" android:toXScale="2.0" android:fromYScale="1.0"
         android:toYScale="2.0" android:pivotX="150%" android:pivotY="150%"
         android:duration="2000" />
    <alpha android:fromAlpha="1.0" android:toAlpha="1.0"
         android:duration="@android:integer/config_mediumAnimTime" />
    <rotate ....各個(gè)屬性></rotate>
    <Interpolator >可以使用其子類和屬性定義動(dòng)畫的運(yùn)行方式,先快后慢,先慢后快等</Interpolator>
</set>

2.幀動(dòng)畫,逐幀播放設(shè)置的資源,稱為Frame動(dòng)畫。

<animation-list xmlns:android=”http://schemas.android.com/apk/res/android” 
android:oneshot=”true”> 
    <item android:drawable=”@drawable/rocket_thrust1″ android:duration=”200″ /> 
    <item android:drawable=”@drawable/rocket_thrust2″ android:duration=”200″ /> 
    <item android:drawable=”@drawable/rocket_thrust3″ android:duration=”200″ /> 
</animation-list>

六、raw目錄下的文件,是直接復(fù)制到設(shè)備中的任意文件。它們無(wú)需編譯,添加到你的應(yīng)用程序編譯產(chǎn)生的壓縮文件中。一般為應(yīng)用要用到的音頻或視頻文件等等

  要使用這些資源,可以調(diào)用Resources.openRawResource(),參數(shù)是資源的ID,即R.raw.somefilename。

七、xml目錄下的文件,是程序中需要使用的普通xml文件。在運(yùn)行時(shí)可以通過(guò)調(diào)用Resources.getXML()讀取。

八、assets目錄下的文件都是保持原始的文件格式,需要用AssetManager以字節(jié)流的形式讀取文件。

  1. 先在Activity里面調(diào)用getAssets()來(lái)獲取AssetManager引用。

  2. 再用AssetManager的open(String fileName, int accessMode)方法則指定讀取的文件以及訪問模式就能得到輸入流InputStream。

  3. 然后就是用已經(jīng)open file 的inputStream讀取文件,讀取完成后記得inputStream.close()。

  4.調(diào)用AssetManager.close()關(guān)閉AssetManager?!       ?/p>

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Android中XML文件的使用方法”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計(jì)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)頁(yè)標(biāo)題:Android中XML文件的使用方法-創(chuàng)新互聯(lián)
URL分享:http://www.muchs.cn/article6/piiog.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、面包屑導(dǎo)航網(wǎng)站排名、微信公眾號(hào)、網(wǎng)站收錄移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化