日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android之Providing Resources(提供资源)

發(fā)布時間:2025/7/14 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android之Providing Resources(提供资源) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

當你寫程序的時候應該習慣于把一些程序需要用到的資源,例如圖片和字符串,分開并獨立地保存在你的程序代碼之外,這樣你就可以獨立地維護這些資源文件。你還應該通過特殊的名字的文件路徑,為特定的設備配置提供可替換的資源文件。在運行時,Android會基于現(xiàn)在的配置自動應用合適的資源文件。例如,你可以根據(jù)不同的屏幕尺寸或基于語言設置的不同的字符串提供不同的UI布局。

?

?

?

一旦你將資源文件與程序代碼分開保存,你可以通過資源ID號來使用對應的資源文件,這些資源ID在項目的R類中自動生成。關(guān)于如何在你的程序里面使用資源,可以看看Accessing Resources。這篇文檔將介紹如何在你的Android工程下來組織管理你的資源文件,以及如何給特定的設備配置提供可替代的資源。

?

?

?

Grouping Resource Types/資源文件的分類

?

在你的工程的res/目錄下,每個子目錄對應一種類型的資源文件。例如,下面是一個簡單工程的文件樹狀結(jié)構(gòu)。

MyProject/

??? src/?

??????? MyActivity.java?

??? res/

??????? drawable/?

??????????? icon.png?

??????? layout/?

??????????? main.xml

??????????? info.xml

??????? values/?

??????????? strings.xml?

這個例子中你可以看到,res/目錄下包含了所有的資源文件(在子目錄下):一個圖片資源,兩個布局資源文件,和一個string資源文件。這個資源目錄的名字是非常重要的,如Table1

?

1. 工程res/下面可以支持的資源目錄:

目錄

資源類型

animator/

定義動畫屬性(property animations)的XML文件.

anim/

定義補間動畫(tween animations)的XML文件. (動畫的屬性也可以保存在這個目錄下,但是animator/目錄是用來保存動畫屬性的并區(qū)別開兩個目錄)

color/

定義了一些colors對應值的XML文件,見Color State List Resource

drawable/

Bitmap文件(.png,.9.png,.jpg,.gif)或者能被編譯為drawable類型的XML文件

·???????? Bitmap files

·???????? Nine-Patches(re-sizable bitmaps)State lists

·???????? Color drawables

·???????? Shapes

·???????? Animation drawables

Drawable Resources

layout/

定義用戶界面布局的XML文件. Layout Resource.

menu/

定義程序menusXML文件,比如Options Menu,Context Menu,或者Sub Menu.Menu Resource

raw/

放置任意的文件,必須為原始形式。使用raw InputStream來打開這些資源文件,調(diào)用Resources.openRawResource()方法來打開resource ID對應的資源,比如R.raw.filename

然而,如果你需要訪問原始文件名字和文件目錄結(jié)構(gòu),你可以考慮將一些資源文件保存在 assets/ 目錄下(而不是res/raw/)。放在assets/下的文件不提供一個資源ID,所以你只能使用 AssetManager來讀取它們。

values/

包含一些簡單值的XML文件,比如stringsintegers,和顏色

在其他res/子目錄下定義的XML資源文件定義的是一個單獨的基于XML文件名的資源,在values/目錄下的文件描述了多種資源。例如這個目錄下的某個資源文件,每個<resources>的子節(jié)點定義了一個單獨資源。比如,<string>節(jié)點創(chuàng)建了一個R.string資源,<color>節(jié)點創(chuàng)建了一個R.color資源。

因為每個資源都是使用自己的XML文件定義的,你可以任意命名文件,并在一個文件里面放不同種類的資源。但是,為了清晰可見(for clarity),你也許想要在一個文件里面放置統(tǒng)一的資源類型。例如,下面是這個目錄下創(chuàng)建資源文件的俗稱約定:

·???????? arrays.xml:放置資源數(shù)組(typed arrays

·???????? colors.xml:放置顏色值(color values

·???????? dimens.xml:放置長度值(dimension values

·???????? strings.xml:放置字符串值(string values

·???????? styles.xml:放置樣式(styles

String ResourceStyle Resource以及 More Resource Types

xml/

在運行時可以通過調(diào)用Resources.getXML()方法來讀取該目錄下的任意XML文件。各種XML配置文件都必須保存在這里,比如searchable configuration

?

?

注意:你不可以直接將資源文件保存在res/目錄下—這樣做會引起編譯錯誤。

?

要了解更多關(guān)于某種特定資源類型的信息,參見:Resource Types文檔

?

你保存在所有子目錄中的資源也就是 1 中定義的你的默認資源。也就是說,這些資源為您的應用程序定義了默認的設置和內(nèi)容。然而,不同類型的Android驅(qū)動設備需要不同類型的資源。例如,當一個設備有比正常屏幕大的屏,那么你應該提供不同的布局資源來充分利用屏幕剩余的空間。或者,如果設備有不同的語言設置,那么應該提供不同的字符串資源來吧文本翻譯到你的用戶界面上。為了給不同的設備配置提供不同的資源,除了您的默認資源你還需要提供可替代資源。

?

?

Providing Alternative Resources/提供可替換的資源

幾乎每個程序都應該給特定的設備配置提供可替換的資源。例如,可以為不同的屏幕尺寸提供可替換的資源,不同的語言提供可替換的字符串。運行時,Android會自動檢查當前設備配置并為你的應用加載合適的資源。

?

?

?

?

要指定一組資源配置的具體方案(To specify configuration-specific alternatives for a set of resources)

  • res/下創(chuàng)建一個新的目錄<resources_name>-<config_qualifier>
    • <resources_name>是和默認資源相對應的目錄名稱(如表1定義)
    • <config_qualifier>是指定一個配置相應的名稱,同時放在這個目錄下的資源會在這個配置上使用。你可以附加多個<config_qualifier>。用破折號進行分開( 2定義)
    在你新的目錄下保存你的可替換資源,這個資源文件必須和默認的資源命名一樣

    例如,下面是一些默認資源和可替換資源:

    res/

    ??? drawable/??

    ??????? icon.png

    ??????? background.png???

    ??? drawable-hdpi/?

    ??????? icon.png

    ??????? background.png?

    ?

    這個hdpi表明在這個目錄下的資源將會在高分辨率(hign-density)的設備上使用。同時每個drawable目錄下的圖片根據(jù)特定屏幕密度繪制大小,文件名是相同的。這樣,你使用引用icon.pngbackgrou.png的資源ID是相同的,但是android會根據(jù)通過比較可替代資源的目錄名稱與設備配置信息來選擇最合適的drawable下的資源。

    ?

    ?

    Android支持多種配置標識符(qualifiers),你可以給你一個目錄名字增加多個標識符(qualifiers),通過破折號分開。Table 2列出了合法的配置標識符(qualifiers),如果你在一個資源目錄下使用了多個標識符,則按順序來決定優(yōu)先權(quán),這些配置標識符必須按下表列出來的順序添加到目錄名稱:

    ?

    注意:Android中的一些配置標識符是在1.0版本之后加上的,所以并不是任意版本的Android系統(tǒng)都支持表2列出的配置標識符。新的配置標識符都說明了它們是在哪一版本添加的。為了避免任何可能出現(xiàn)的額問題,您應該始終為您的應用程序所使用的資源設置默認值。要了解更多信息,參見Providing the Best Device Compatibility with Resources部分。

    ?

    ?

    ?

    【未完待續(xù)】

    ?

    歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處:http://www.cnblogs.com/CodeGuy/

    轉(zhuǎn)載于:https://www.cnblogs.com/CodeGuy/archive/2011/08/25/2153901.html

    總結(jié)

    以上是生活随笔為你收集整理的Android之Providing Resources(提供资源)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。