標籤:
1.我們可以命名的資源種類有多少?
答:
res/anim/ |
XML檔案,它們被編譯進逐幀動畫(frame by frame animation)或補間動畫(tweened animation)對象 |
res/drawable/ |
.png、.9.png、.jpg檔案,它們被編譯進以下的Drawable資源子類型中: 要獲得這種類型的一個資源,可以使用Resource.getDrawable(id) 位元影像檔案 9-patches(可變尺寸的位元影像) 為了擷取資源類型,使用mContext.getResources().getDrawable(R.drawable.imageId) 注意:放在這裡的映像資源可能會被aapt工 具自動地進行無損壓縮最佳化。比如,一個真彩色但並不需要256色的PNG可能會被轉換為一個帶調色盤的8位PNG。這使得同等品質的圖片佔用更少的資源。 所以我們得意識到這些放在該目錄下的二進位映像在產生時可能會發生變化。如果你想讀取一個映像位流並轉換成一個位元影像(bitmap),請把影像檔放在 res/raw/目錄下,這樣可以避免被自動最佳化。 |
res/layout/ |
被編譯為螢幕布局(或螢幕的一部分)的XML檔案。參見布局聲明(Declaring Layout) |
res/values/ |
可以被編譯成很多種類型的資源的XML檔案。 注意: 不像其他的res/檔案夾,它可以儲存任意數量的檔案,這些檔案儲存了要建立資源的描述,而不是資源本身。XML元素類型控制這些資源應該放在R類的什麼地方。 儘管這個檔案夾裡的檔案可以任意命名,不過下面使一些比較典型的檔案(檔案命名的慣例是將元素類型包含在該名稱之中): array.xml 定義數組 colors.xml 定義color drawable和顏色的字串值(color string values)。使用Resource.getDrawable()和Resources.getColor()分別獲得這些資源。 dimens.xml定義尺寸值(dimension value)。使用Resources.getDimension()獲得這些資源。 strings.xml定義字串(string)值。使用Resources.getString()或者Resources.getText()擷取這些資源。getText()會保留在UI字串上應用的豐富的文本樣式。 styles.xml 定義樣式(style)對象。 |
res/xml/ |
任意的XML檔案,在運行時可以通過調用Resources.getXML()讀取。 |
res/raw/ |
直接複製到裝置中的任意檔案。它們無需編譯,添加到你的應用程式編譯產生的壓縮檔中。要使用這些資源,可以調用Resources.openRawResource(),參數是資源的ID,即R.raw.somefilename。 |
and asset.
應用文法:R.resource_type.resource_name
2.R.java是什嗎?
在編譯資源的時候,會產生R.java,它是用來記錄每個資源的ID,這樣資源都可以通過R.resource_type.resource_name 來使用。除了asset除外。
3.資源引用文法和為UI控制項分配ID之間有什麼聯絡。
資源引用就是通過ID來索引具體的UI控制項,所以android引用UI控制項很方便。
4.產生資源ID時,會使用副檔名嗎?
不會。
5.如果兩個資源,副檔名不同,會怎樣?
編譯失敗。
6.什麼是原始資源和XML資源,和asset有什麼不同。
原始資源:res/raw/ 通常為mp3,txt等 R.raw.id
XML資源:xml R.xml.id
asset: 直接通過assetmanager開啟。不會產生id,與res同級
7.xml資源能否本地化?
TBD。
8.asset能否本地化?
不能。asset可以有任意子目錄,而res下面只能有檔案。應為R.java需要以此來產生id。
9.資源引用文法
R.resource_type.resource_name
10.能否預先聲明ID,如何聲明?
在values建立立ids.xml,把id在這裡聲明:
<item type="id" name="right">false</item>
使用的時候就是@id 而不是@+id
11.那些XML節點可用於建立ID
TBD。
12.Plurals資源的1和其他的意義是什嗎?
協助我們識別複數的時候使用,1表示單個,other表示其他個0個,或者>=2.
16.字串可否使用HTML字串。
可以。
<
string
name="welcome">Welcome to <
b
>Android</
b
>!</
string
>17.如何在文中顯示html字元?
有時可能要建立一個樣式化的文本資源,並可作為格式化串使用。通常這不能生效,
因為String.format(String, Object...)方法會去除字串內的所有的樣式資訊。
解決方案是寫入一段轉義後的HTML標記,然後在格式化後再用fromHtml(String)恢複出這些樣式。例如:(1)將樣式化的文本資源儲存為轉義後的HTML字串:<resources> <string name="welcome_messages">Hello, %1$s! You have <b>%2$d new messages</b>.</string></resources> 在這個格式化字串裡,加入了一個<b>元素。注意左角括弧是用標記<轉義過的HTML。(2)然後,按照通常方式格式化字串,並調用fromHtml(String) 把HTML文本轉換成帶樣式的文本。 Resources res = getResources();String text = String.format(res.getString(R.string.welcome_messages), username,mailCount);CharSequence styledText = Html.fromHtml(text); 因為fromHtml(String)方法會格式化所有的HTML內容,所以要確保用htmlEncode(String)對帶格式化文本的字串內所有可能的HTML字元進行轉義。
比如,如果要把可能包含諸如“<”或“&”等字元的串作為參數傳給String.format(),那麼必須在格式化之前對這些字元進行轉義。
格式化後,再把字串傳入fromHtml(String),這些特殊字元就能還原成本來意義了。例如: String escapedUsername = TextUtil.htmlEncode(username)Resources res = getResources();String text = String.format(res.getString(R.string.welcome_messages), escapedUsername,mailCount);CharSequence styledText = Html.fromHtml(text);
18.如何定義一個拖拽矩形:
使用.9.png格式可以
19.如何使用
在可以拖拽的方向,可以不設限設定長度。
20怎麼讀題res/xml下的xml
通過activity.getresource().getxml xmlpresereader
21.assetmanager左右是什嗎?
主要作用是讀取asset
22.resource 可以讀取所有的res檔案,通過activity擷取
23.可否在asset下建立任意子目錄,可以
24.可否在res/xml下建立子目錄,不可以
25.什麼是資源配置修飾符?
就是使得UI通過不同的配置呈現給點的效果,比如語言。
資源是使用到此介紹:接下去將講述android 4 大組件的使用。
使用android資源