TypedArray
(可用于可繪制對(duì)象數(shù)組)的 XML 資源。在 XML 中定義的布爾值。
注意:Bool 是使用 name
屬性中提供的值(而不是 XML 文件的名稱(chēng))引用的簡(jiǎn)單資源。因此,您可以在一個(gè) XML 文件中將 bool 資源與其他簡(jiǎn)單資源合并到一個(gè) <resources>
元素下。
res/values/filename.xml
<bool>
元素的 name
將用作資源 ID。R.bool.bool_name
@[package:]bool/bool_name
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)用代碼會(huì)檢索布爾值:
java代碼: Resources res = getResources(); boolean screenIsSmall = res.getBoolean(R.bool.screen_small); kotlin代碼: val screenIsSmall: Boolean = resources.getBoolean(R.bool.screen_small)以下布局 XML 會(huì)將該布爾值應(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 通道指定。您可以在接受十六進(jìn)制顏色值的任何地方使用顏色資源。當(dāng) XML 中需要可繪制資源時(shí),您也可以使用顏色資源(例如,android:drawable="@color/green"
)。
該值始終以井號(hào) (#) 字符開(kāi)頭,后跟以下某種格式的“透明度、紅、綠、藍(lán)”(Alpha-Red-Green-Blue) 信息:
注意:顏色是使用 name
屬性中提供的值(而不是 XML 文件的名稱(chēng))引用的簡(jiǎn)單資源。因此,您可以在一個(gè) XML 文件中將顏色資源與其他簡(jiǎn)單資源合并到一個(gè) <resources>
元素下。
res/values/colors.xml
<color>
元素的 name
將用作資源 ID。R.color.color_name
@[package:]color/color_name
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)用代碼會(huì)檢索顏色資源:
java代碼: Resources res = getResources(); int color = res.getColor(R.color.opaque_red); kotlin代碼: val color: Int = resources.getColor(R.color.opaque_red)以下布局 XML 會(huì)將該顏色應(yīng)用到屬性:
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>在 XML 中定義的尺寸值。尺寸由數(shù)字后跟度量單位來(lái)指定。例如:10px、2in、5sp。Android 支持以下度量單位:
dp
sp
pt
px
mm
in
注意:尺寸是使用 name
屬性中提供的值(而不是 XML 文件的名稱(chēng))引用的簡(jiǎn)單資源。因此,您可以在一個(gè) XML 文件中將尺寸資源與其他簡(jiǎn)單資源合并到一個(gè) <resources>
元素下。
res/values/filename.xml
<dimen>
元素的 name
將用作資源 ID。R.dimen.dimension_name
@[package:]dimen/dimension_name
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)用代碼會(huì)檢索尺寸:
java代碼: Resources res = getResources(); float fontSize = res.getDimension(R.dimen.font_size); kotlin代碼: val fontSize: Float = resources.getDimension(R.dimen.font_size)以下布局 XML 會(huì)將尺寸應(yīng)用到屬性:
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>在 XML 中定義的唯一資源 ID。Android 開(kāi)發(fā)者工具可使用您在 <item>
元素中提供的名稱(chēng),在您項(xiàng)目的 R.java
類(lèi)中創(chuàng)建唯一的整數(shù),供您用作應(yīng)用資源(例如,界面布局中的 View
)的標(biāo)識(shí)符,或創(chuàng)建唯一的整數(shù),供您在應(yīng)用代碼中使用(例如,作為對(duì)話(huà)框的 ID 或結(jié)果代碼)。
注意:ID 是使用 name
屬性中提供的值(而不是 XML 文件的名稱(chēng))引用的簡(jiǎn)單資源。因此,您可以在一個(gè) XML 文件中將 ID 資源與其他簡(jiǎn)單資源合并到一個(gè) <resources>
元素下。另外請(qǐng)注意,ID 資源并不引用實(shí)際的資源項(xiàng);它只是一個(gè)唯一 ID,您可以將其附加到其他資源,或者在應(yīng)用中作為唯一整數(shù)使用。
res/values/filename.xml
R.id.name
@[package:]id/name
保存在 res/values/ids.xml
的 XML 文件:
然后,以下布局代碼段會(huì)將“button_ok”ID 應(yīng)用到按鈕微件:
<Button android:id="@id/button_ok" style="@style/button_style" />請(qǐng)注意,android:id
值不會(huì)在 ID 引用中包含加號(hào),因?yàn)榇?ID 已存在,如上面的 ids.xml
示例中所定義。(如果使用加號(hào)以 android:id="@+id/name"
格式指定 XML 資源的 ID,則表示“name”ID 不存在,應(yīng)該創(chuàng)建它。)
再比如,以下代碼段使用“dialog_exit”ID 作為對(duì)話(huà)框的唯一標(biāo)識(shí)符:
showDialog(R.id.dialog_exit)在同一應(yīng)用中,在創(chuàng)建對(duì)話(huà)框時(shí)會(huì)比較“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 } } }在 XML 中定義的整數(shù)。
注意:整數(shù)是使用 name
屬性中提供的值(而不是 XML 文件的名稱(chēng))引用的簡(jiǎn)單資源。因此,您可以在一個(gè) XML 文件中將整數(shù)資源與其他簡(jiǎn)單資源合并到一個(gè) <resources>
元素下。
res/values/filename.xml
<integer>
元素的 name
將用作資源 ID。R.integer.integer_name
@[package:]integer/integer_name
保存在 res/values/integers.xml
的 XML 文件:
以下應(yīng)用代碼會(huì)檢索整數(shù):
java代碼: Resources res = getResources(); int maxSpeed = res.getInteger(R.integer.max_speed); kotlin代碼: val maxSpeed: Int = resources.getInteger(R.integer.max_speed)在 XML 中定義的整數(shù)數(shù)組。
注意:整數(shù)數(shù)組是使用 name
屬性中提供的值(而不是 XML 文件的名稱(chēng))引用的簡(jiǎn)單資源。因此,您可以在一個(gè) XML 文件中將整數(shù)數(shù)組資源與其他簡(jiǎn)單資源合并到一個(gè) <resources>
元素下。
res/values/filename.xml
<integer-array>
元素的 name
將用作資源 ID。R.array.integer_array_name
@[package:]array.integer_array_name
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)用代碼會(huì)檢索整數(shù)數(shù)組:
java代碼: Resources res = getResources(); int[] bits = res.getIntArray(R.array.bits); kotlin代碼: val bits: IntArray = resources.getIntArray(R.array.bits)在 XML 中定義的 TypedArray
。您可以使用這種資源創(chuàng)建其他資源(例如可繪制對(duì)象)的數(shù)組。請(qǐng)注意,此類(lèi)數(shù)組不要求所含的資源具有相同的類(lèi)型,因此您可以創(chuàng)建混合資源類(lèi)型的數(shù)組,但必須知道數(shù)組中有哪些數(shù)據(jù)類(lèi)型及其位置,以便可以使用 TypedArray
的 get...()
方法正確獲取每一項(xiàng)數(shù)據(jù)。
注意:類(lèi)型化數(shù)組是使用 name
屬性中提供的值(而不是 XML 文件的名稱(chēng))引用的簡(jiǎn)單資源。因此,您可以在一個(gè) XML 文件中將類(lèi)型化數(shù)組資源與其他簡(jiǎn)單資源合并到一個(gè) <resources>
元素下。
res/values/filename.xml
<array>
元素的 name
將用作資源 ID。TypedArray
的資源指針。R.array.array_name
@[package:]array.array_name
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)用代碼會(huì)檢索每個(gè)數(shù)組,然后獲取每個(gè)數(shù)組中的第一個(gè)條目:
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)
分享名稱(chēng):Android復(fù)習(xí)(二)應(yīng)用資源——>更多類(lèi)型-創(chuàng)新互聯(lián)
文章起源:http://vcdvsql.cn/article36/cdidpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、微信公眾號(hào)、網(wǎng)站制作、面包屑導(dǎo)航、定制網(wǎng)站、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容