Android復(fù)習(xí)(二)應(yīng)用資源——>更多類型-創(chuàng)新互聯(lián)

更多資源類型

本頁面定義了更多類型的可具體化的資源,包括:Android復(fù)習(xí)(二)應(yīng)用資源
——>更多類型
Bool
帶有布爾值的 XML 資源。
顏色
帶有顏色值(十六進制顏色)的 XML 資源。
尺寸
帶有尺寸值(包含度量單位)的 XML 資源。
ID
提供應(yīng)用資源和組件的唯一標(biāo)識符的 XML 資源。
整數(shù)
帶有整數(shù)值的 XML 資源。
整數(shù)數(shù)組
提供整數(shù)數(shù)組的 XML 資源。
類型化數(shù)組
提供 TypedArray(可用于可繪制對象數(shù)組)的 XML 資源。

Bool

在 XML 中定義的布爾值。

成都創(chuàng)新互聯(lián)公司于2013年開始,先為富縣等服務(wù)建站,富縣等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為富縣企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

注意:Bool 是使用 name 屬性中提供的值(而不是 XML 文件的名稱)引用的簡單資源。因此,您可以在一個 XML 文件中將 bool 資源與其他簡單資源合并到一個 <resources> 元素下。

文件位置:
res/values/filename.xml
文件名可以任意設(shè)置。<bool> 元素的 name 將用作資源 ID。
資源引用:
在 Java 中:R.bool.bool_name
在 XML 中:@[package:]bool/bool_name
語法:
<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="bool_name" >[true | false]</bool> </resources>
 
元素:
<resources>
必需。該元素必須是根節(jié)點。

沒有屬性。

<bool>
布爾值:true 或 false。

屬性:

name
字符串。Bool 值的名稱。該名稱將用作資源 ID。
示例:
保存在 res/values-small/bools.xml 的 XML 文件:<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="screen_small">true</bool> <bool name="adjust_view_bounds">true</bool> </resources>
 

以下應(yīng)用代碼會檢索布爾值:

java代碼: Resources res = getResources(); boolean screenIsSmall = res.getBoolean(R.bool.screen_small); kotlin代碼: val screenIsSmall: Boolean = resources.getBoolean(R.bool.screen_small)  

以下布局 XML 會將該布爾值應(yīng)用到屬性:

<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />

顏色

在 XML 中定義的顏色值。顏色使用 RGB 值和 alpha 通道指定。您可以在接受十六進制顏色值的任何地方使用顏色資源。當(dāng) XML 中需要可繪制資源時,您也可以使用顏色資源(例如,android:drawable="@color/green")。

該值始終以井號 (#) 字符開頭,后跟以下某種格式的“透明度、紅、綠、藍”(Alpha-Red-Green-Blue) 信息:

  • #RGB
  • #ARGB
  • #RRGGBB
  • #AARRGGBB

注意:顏色是使用 name 屬性中提供的值(而不是 XML 文件的名稱)引用的簡單資源。因此,您可以在一個 XML 文件中將顏色資源與其他簡單資源合并到一個 <resources> 元素下。

文件位置:
res/values/colors.xml
該文件名可以任意設(shè)置。<color> 元素的 name 將用作資源 ID。
資源引用:
在 Java 中:R.color.color_name
在 XML 中:@[package:]color/color_name
語法:
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="color_name" >hex_color</color> </resources>  
元素:
<resources>
必需。該元素必須是根節(jié)點。

沒有屬性。

<color>
以十六進制表示的顏色,如上所述。

屬性:

name
字符串。顏色的名稱。該名稱將用作資源 ID。
示例:
保存在 res/values/colors.xml 的 XML 文件: <?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>  

以下應(yīng)用代碼會檢索顏色資源:

java代碼: Resources res = getResources(); int color = res.getColor(R.color.opaque_red); kotlin代碼: val color: Int = resources.getColor(R.color.opaque_red)  

以下布局 XML 會將該顏色應(yīng)用到屬性:

<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
 

尺寸

在 XML 中定義的尺寸值。尺寸由數(shù)字后跟度量單位來指定。例如:10px、2in、5sp。Android 支持以下度量單位:

dp
密度無關(guān)像素 - 基于屏幕物理密度的抽象單位。這些單位相對于 160 dpi(每英寸點數(shù))屏幕確立,在該屏幕上 1dp 大致等于 1px。在更高密度的屏幕上運行時,用于繪制 1dp 的像素數(shù)量會根據(jù)屏幕 dpi 按照適當(dāng)?shù)南禂?shù)增加。同樣,在更低密度的屏幕上,用于繪制 1dp 的像素數(shù)量會相應(yīng)減少。dp 對像素的比率會隨著屏幕密度的變化而變化,但不一定成正比。要使布局中的視圖尺寸根據(jù)不同的屏幕密度正確調(diào)整大小,一種簡單的解決辦法就是使用 dp 單位(而不是 px 單位)。換句話說,它可在不同設(shè)備上提供一致的界面元素大小。
sp
縮放無關(guān)像素 - 這和 dp 單位類似,但它也會根據(jù)用戶的字體大小偏好設(shè)置進行縮放。建議您在指定字體大小時使用此單位,以便字體大小會根據(jù)屏幕密度和用戶偏好設(shè)置進行調(diào)整。
pt
點 - 1/72 英寸,基于屏幕的物理尺寸,假設(shè)屏幕密度為 72dpi。
px
像素 - 對應(yīng)于屏幕上的實際像素數(shù)。建議不要使用這種度量單位,因為不同設(shè)備的實際呈現(xiàn)效果可能不同;每臺設(shè)備的每英寸像素數(shù)可能不同,屏幕上的總像素數(shù)也可能有差異。
mm
毫米 - 基于屏幕的物理尺寸。
in
英寸 - 基于屏幕的物理尺寸。

注意:尺寸是使用 name 屬性中提供的值(而不是 XML 文件的名稱)引用的簡單資源。因此,您可以在一個 XML 文件中將尺寸資源與其他簡單資源合并到一個 <resources> 元素下。

文件位置:
res/values/filename.xml
該文件名可以任意設(shè)置。<dimen> 元素的 name 將用作資源 ID。
資源引用:
在 Java 中:R.dimen.dimension_name
在 XML 中:@[package:]dimen/dimension_name
語法:
<?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="dimension_name" >dimension</dimen> </resources>
 
元素:
<resources>
必需。該元素必須是根節(jié)點。

沒有屬性。

<dimen>
定義一個尺寸,由浮點數(shù)后跟度量單位(dp、sp、pt、px、mm、in)表示,如上所述。

屬性:

name
字符串。尺寸的名稱。該名稱將用作資源 ID。
示例:
保存在 res/values/dimens.xml 的 XML 文件: <?xml version="1.0" encoding="utf-8"?> <resources> <dimen name="textview_height">25dp</dimen> <dimen name="textview_width">150dp</dimen> <dimen name="ball_radius">30dp</dimen> <dimen name="font_size">16sp</dimen> </resources>
 

以下應(yīng)用代碼會檢索尺寸:

java代碼: Resources res = getResources(); float fontSize = res.getDimension(R.dimen.font_size); kotlin代碼: val fontSize: Float = resources.getDimension(R.dimen.font_size)  

以下布局 XML 會將尺寸應(yīng)用到屬性:

<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>  

ID

在 XML 中定義的唯一資源 ID。Android 開發(fā)者工具可使用您在 <item> 元素中提供的名稱,在您項目的 R.java 類中創(chuàng)建唯一的整數(shù),供您用作應(yīng)用資源(例如,界面布局中的 View)的標(biāo)識符,或創(chuàng)建唯一的整數(shù),供您在應(yīng)用代碼中使用(例如,作為對話框的 ID 或結(jié)果代碼)。

注意:ID 是使用 name 屬性中提供的值(而不是 XML 文件的名稱)引用的簡單資源。因此,您可以在一個 XML 文件中將 ID 資源與其他簡單資源合并到一個 <resources> 元素下。另外請注意,ID 資源并不引用實際的資源項;它只是一個唯一 ID,您可以將其附加到其他資源,或者在應(yīng)用中作為唯一整數(shù)使用。

文件位置:
res/values/filename.xml
該文件名可以任意設(shè)置。
資源引用:
在 Java 中:R.id.name
在 XML 中:@[package:]id/name
語法:
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
 
元素:
<resources>
必需。該元素必須是根節(jié)點。

沒有屬性。

<item>
定義唯一 ID。不設(shè)置值,只有屬性。

屬性:

type
必須為“id”。
name
字符串。ID 的唯一名稱。
示例:

保存在 res/values/ids.xml 的 XML 文件:

<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button_ok" /> <item type="id" name="dialog_exit" /> </resources>
 

然后,以下布局代碼段會將“button_ok”ID 應(yīng)用到按鈕微件:

<Button android:id="@id/button_ok" style="@style/button_style" />
 

請注意,android:id 值不會在 ID 引用中包含加號,因為此 ID 已存在,如上面的 ids.xml 示例中所定義。(如果使用加號以 android:id="@+id/name" 格式指定 XML 資源的 ID,則表示“name”ID 不存在,應(yīng)該創(chuàng)建它。)

再比如,以下代碼段使用“dialog_exit”ID 作為對話框的唯一標(biāo)識符:

showDialog(R.id.dialog_exit)
 

在同一應(yīng)用中,在創(chuàng)建對話框時會比較“dialog_exit”ID:

java代碼: protected Dialog onCreateDialog(int id) { Dialog dialog; switch(id) { case R.id.dialog_exit: ... break; default: dialog = null; } return dialog; } kotlin代碼: override fun onCreateDialog(id: Int): Dialog? { return when(id) { R.id.dialog_exit -> { ... } else -> { null } } }
 

整數(shù)

在 XML 中定義的整數(shù)。

注意:整數(shù)是使用 name 屬性中提供的值(而不是 XML 文件的名稱)引用的簡單資源。因此,您可以在一個 XML 文件中將整數(shù)資源與其他簡單資源合并到一個 <resources> 元素下。

文件位置:
res/values/filename.xml
該文件名可以任意設(shè)置。<integer> 元素的 name 將用作資源 ID。
資源引用:
在 Java 中:R.integer.integer_name
在 XML 中:@[package:]integer/integer_name
語法:
<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="integer_name" >integer</integer> </resources>
 
元素:
<resources>
必需。該元素必須是根節(jié)點。

沒有屬性。

<integer>
一個整數(shù)。

屬性:

name
字符串。該整數(shù)的名稱。該名稱將用作資源 ID。
示例:

保存在 res/values/integers.xml 的 XML 文件:

<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="max_speed">75</integer> <integer name="min_speed">5</integer> </resources>  

以下應(yīng)用代碼會檢索整數(shù):

java代碼: Resources res = getResources(); int maxSpeed = res.getInteger(R.integer.max_speed); kotlin代碼: val maxSpeed: Int = resources.getInteger(R.integer.max_speed)

整數(shù)數(shù)組

在 XML 中定義的整數(shù)數(shù)組。

注意:整數(shù)數(shù)組是使用 name 屬性中提供的值(而不是 XML 文件的名稱)引用的簡單資源。因此,您可以在一個 XML 文件中將整數(shù)數(shù)組資源與其他簡單資源合并到一個 <resources> 元素下。

文件位置:
res/values/filename.xml
該文件名可以任意設(shè)置。<integer-array> 元素的 name 將用作資源 ID。
編譯后的資源數(shù)據(jù)類型:
指向整數(shù)數(shù)組的資源指針。
資源引用:
在 Java 中:R.array.integer_array_name
在 XML 中:@[package:]array.integer_array_name
語法:
<?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="integer_array_name"> <item >integer</item> </integer-array> </resources>
 
元素:
<resources>
必需。該元素必須是根節(jié)點。

沒有屬性。

<integer-array>
定義一個整數(shù)數(shù)組。包含一個或多個 <item> 子元素。

屬性:

android:name
字符串。數(shù)組的名稱。此名稱將用作引用數(shù)組的資源 ID。
<item>
一個整數(shù)。該值可以是對另一個整數(shù)資源的引用。必須是 <integer-array> 元素的子元素。

沒有屬性。

示例:
保存在 res/values/integers.xml 的 XML 文件: <?xml version="1.0" encoding="utf-8"?> <resources> <integer-array name="bits"> <item>4</item> <item>8</item> <item>16</item> <item>32</item> </integer-array> </resources>
 

以下應(yīng)用代碼會檢索整數(shù)數(shù)組:

java代碼: Resources res = getResources(); int[] bits = res.getIntArray(R.array.bits); kotlin代碼: val bits: IntArray = resources.getIntArray(R.array.bits)  

類型化數(shù)組

在 XML 中定義的 TypedArray。您可以使用這種資源創(chuàng)建其他資源(例如可繪制對象)的數(shù)組。請注意,此類數(shù)組不要求所含的資源具有相同的類型,因此您可以創(chuàng)建混合資源類型的數(shù)組,但必須知道數(shù)組中有哪些數(shù)據(jù)類型及其位置,以便可以使用 TypedArray 的 get...() 方法正確獲取每一項數(shù)據(jù)。

注意:類型化數(shù)組是使用 name 屬性中提供的值(而不是 XML 文件的名稱)引用的簡單資源。因此,您可以在一個 XML 文件中將類型化數(shù)組資源與其他簡單資源合并到一個 <resources> 元素下。

文件位置:
res/values/filename.xml
該文件名可以任意設(shè)置。<array> 元素的 name 將用作資源 ID。
編譯后的資源數(shù)據(jù)類型:
指向 TypedArray 的資源指針。
資源引用:
在 Java 中:R.array.array_name
在 XML 中:@[package:]array.array_name
語法:
<?xml version="1.0" encoding="utf-8"?> <resources> <array name="integer_array_name"> <item>resource</item> </array> </resources>
 
元素:
<resources>
必需。該元素必須是根節(jié)點。

沒有屬性。

<array>
定義一個數(shù)組。包含一個或多個 <item> 子元素。

屬性:

android:name
字符串。數(shù)組的名稱。此名稱將用作引用數(shù)組的資源 ID。
<item>
通用資源。該值可以是對資源或簡單數(shù)據(jù)類型的引用。必須是 <array> 元素的子元素。

沒有屬性。

示例:
保存在 res/values/arrays.xml 的 XML 文件: <?xml version="1.0" encoding="utf-8"?> <resources> <array name="icons"> <item>@drawable/home</item> <item>@drawable/settings</item> <item>@drawable/logout</item> </array> <array name="colors"> <item>#FFFF0000</item> <item>#FF00FF00</item> <item>#FF0000FF</item> </array> </resources>
 

以下應(yīng)用代碼會檢索每個數(shù)組,然后獲取每個數(shù)組中的第一個條目:

java代碼: Resources res = getResources(); TypedArray icons = res.obtainTypedArray(R.array.icons); Drawable drawable = icons.getDrawable(0); TypedArray colors = res.obtainTypedArray(R.array.colors); int color = colors.getColor(0,0); kotlin代碼: val icons: TypedArray = resources.obtainTypedArray(R.array.icons) val drawable: Drawable = icons.getDrawable(0) val colors: TypedArray = resources.obtainTypedArray(R.array.colors) val color: Int = colors.getColor(0,0)

分享名稱:Android復(fù)習(xí)(二)應(yīng)用資源——&gt;更多類型-創(chuàng)新互聯(lián)
文章起源:http://muchs.cn/article36/cdidpg.html

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

廣告

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

綿陽服務(wù)器托管