หน้านี้จะระบุประเภทของทรัพยากรที่คุณสามารถภายนอกได้ดังต่อไปนี้
- บูลีน
- ทรัพยากร XML ที่มีค่าบูลีน
- สี
- ทรัพยากร XML ที่มีค่าสี (สีเลขฐาน 16)
- มิติข้อมูล
- ทรัพยากร XML ที่มีค่ามิติข้อมูล (ที่มีหน่วยวัด)
- ID
- ทรัพยากร XML ที่มีตัวระบุที่ไม่ซ้ำกันสำหรับทรัพยากรของแอปพลิเคชันและ คอมโพเนนต์
- จำนวนเต็ม
- ทรัพยากร XML ที่มีค่าจำนวนเต็ม
- อาร์เรย์จำนวนเต็ม
- ทรัพยากร XML ที่มีจำนวนเต็ม
- อาร์เรย์ที่พิมพ์
- ทรัพยากร XML ที่มี
TypedArray
(ซึ่งคุณใช้ได้ สำหรับอาร์เรย์ของรายการที่ถอนออกได้)
บูลีน
ค่าบูลีนที่กำหนดไว้ใน XML
หมายเหตุ: บูลีนเป็นทรัพยากรที่เรียบง่ายที่กล่าวถึง
โดยใช้ค่าที่ระบุในแอตทริบิวต์ name
ไม่ใช่ชื่อไฟล์ XML อาส
คุณจะสามารถรวมทรัพยากรบูลีนกับทรัพยากรง่ายๆ อื่นๆ ในไฟล์ XML เดียวได้
ภายใต้องค์ประกอบ <resources>
1 รายการ
- ตำแหน่งที่ตั้งไฟล์:
-
ตั้งชื่อไฟล์ตามใจชอบ
name
ขององค์ประกอบ<bool>
จะใช้เป็นทรัพยากร 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>
- องค์ประกอบ:
- ตัวอย่าง:
- ไฟล์ XML ที่บันทึกไว้ที่
res/values-small/bools.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <bool name="screen_small">true</bool> <bool name="adjust_view_bounds">true</bool> </resources>
โค้ดของแอปพลิเคชันต่อไปนี้จะดึงข้อมูลบูลีน
Kotlin
val screenIsSmall: Boolean =
resources
.getBoolean
(R.bool.screen_small)Java
Resources res =
getResources()
; boolean screenIsSmall = res.getBoolean
(R.bool.screen_small);XML การออกแบบต่อไปนี้ใช้บูลีนสำหรับแอตทริบิวต์
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:src="@drawable/logo" android:adjustViewBounds="@bool/adjust_view_bounds" />
res/values/filename.xml
สี
ค่าสีที่กำหนดไว้ใน XML
สีจะกําหนดโดยใช้ค่า RGB และช่องอัลฟ่า คุณใช้แหล่งข้อมูลสีได้
ตำแหน่งใดก็ได้ที่ยอมรับค่าสีเลขฐาน 16 นอกจากนี้ คุณยังสามารถใช้แหล่งข้อมูลสีเมื่อ
ควรมีทรัพยากรที่ถอนออกได้ในรูปแบบ XML เช่น android:drawable="@color/green"
ค่านี้มักจะเริ่มต้นด้วยอักขระสี่เหลี่ยม (#) ซึ่งตามด้วยเครื่องหมาย ข้อมูล Alpha-Red-Green-Blue ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
หมายเหตุ: สีเป็นแหล่งข้อมูลที่เรียบง่ายและมีการอ้างอิง
โดยใช้ค่าที่ระบุในแอตทริบิวต์ name
ไม่ใช่ชื่อไฟล์ XML อาส
คุณสามารถรวมทรัพยากรสีเข้ากับทรัพยากรง่ายๆ อื่นๆ ในไฟล์ XML เดียว
ภายใต้องค์ประกอบ <resources>
1 รายการ
- ตำแหน่งที่ตั้งไฟล์:
-
ตั้งชื่อไฟล์ตามใจชอบ
name
ขององค์ประกอบ<color>
จะใช้เป็น รหัสทรัพยากร - การอ้างอิงทรัพยากร:
-
ใน 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>
- องค์ประกอบ:
- ตัวอย่าง:
- ไฟล์ XML ที่บันทึกไว้ที่
res/values/colors.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <color name="opaque_red">#f00</color> <color name="translucent_red">#80ff0000</color> </resources>
โค้ดของแอปพลิเคชันต่อไปนี้จะดึงข้อมูลทรัพยากรสี
Kotlin
val color: Int =
resources
.getColor
(R.color.opaque_red)Java
Resources res =
getResources()
; int color = res.getColor
(R.color.opaque_red);XML การออกแบบต่อไปนี้นำสีไปใช้กับแอตทริบิวต์
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="@color/translucent_red" android:text="Hello"/>
res/values/colors.xml
มิติข้อมูล
ค่ามิติข้อมูลที่กำหนดไว้ใน XML มิติข้อมูล จะระบุด้วยตัวเลขตามด้วยหน่วยวัด เช่น 10px, 2in หรือ 5sp Android รองรับหน่วยวัดต่อไปนี้
dp
- ความหนาแน่นของพิกเซลอิสระ: หน่วยนามธรรมที่อิงตามความหนาแน่นทางกายภาพของ
บนหน้าจอ หน่วยเหล่านี้สัมพันธ์กับหน้าจอ 160 dpi (จุดต่อนิ้ว) ซึ่ง 1 dp เท่ากันโดยประมาณ
เป็น 1 พิกเซล เมื่อทำงานบนหน้าจอที่มีความหนาแน่นสูงขึ้น ระบบจะปรับขนาดจำนวนพิกเซลที่ใช้วาด 1 dp
ตามค่า dpi ของหน้าจอ
ในทํานองเดียวกัน ในหน้าจอความหนาแน่นต่ำ ตัวเลข ของพิกเซลที่ใช้สำหรับ 1 dp จะถูกลดขนาดลง อัตราส่วนของ dps ต่อพิกเซล จะเปลี่ยนไปตามความหนาแน่นของหน้าจอ แต่ไม่จำเป็นว่าเป็นสัดส่วนโดยตรง การใช้หน่วย dp แทนหน่วย px เป็นวิธีการแก้ปัญหา เพื่อทำให้ขนาดมุมมองในการปรับขนาดของเลย์เอาต์อย่างเหมาะสมสำหรับความหนาแน่นหน้าจอแบบต่างๆ ได้ ทำให้ขนาดจริงขององค์ประกอบ UI ต่างๆ มีขนาดต่างๆ ให้สอดคล้องกัน อุปกรณ์
sp
- พิกเซลที่ไม่อิงตามสเกล - หน่วยนี้เหมือนกับหน่วย dp แต่ก็ปรับขนาดตามแบบอักษรของผู้ใช้ด้วย การตั้งค่าขนาด เราขอแนะนำให้คุณใช้หน่วยนี้เมื่อระบุขนาดแบบอักษร เพื่อให้ปรับได้ ทั้งสำหรับความหนาแน่นของหน้าจอและค่ากำหนดของผู้ใช้
pt
- จุด: 1/72 ของนิ้วตามขนาดจริงของหน้าจอ หากใช้หน้าจอความหนาแน่น 72 DPI
px
- พิกเซล: สอดคล้องกับพิกเซลจริงบนหน้าจอ เราไม่แนะนําให้ใช้หน่วยนี้ เนื่องจาก การแสดงผลจริงอาจแตกต่างกันไปตามอุปกรณ์ อุปกรณ์ต่างๆ อาจมีจำนวนพิกเซลไม่เท่ากัน ต่อนิ้ว และอาจมีพิกเซลรวมบนหน้าจอมากกว่าหรือน้อยกว่า
mm
- มิลลิเมตร: ขึ้นอยู่กับขนาดจริงของหน้าจอ
in
- นิ้ว: ขึ้นอยู่กับขนาดจริงของหน้าจอ
หมายเหตุ: มิติข้อมูลคือทรัพยากรทั่วไปที่ใช้อ้างอิง
โดยใช้ค่าที่ระบุในแอตทริบิวต์ name
ไม่ใช่ชื่อไฟล์ XML อาส
เช่น คุณสามารถรวมทรัพยากรมิติข้อมูลเข้ากับทรัพยากรง่ายๆ อื่นๆ ในไฟล์ XML เดียว
ภายใต้องค์ประกอบ <resources>
1 รายการ
- ตำแหน่งที่ตั้งไฟล์:
-
ตั้งชื่อไฟล์ตามใจชอบ
name
ขององค์ประกอบ<dimen>
จะใช้เป็น รหัสทรัพยากร - การอ้างอิงทรัพยากร:
-
ใน 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>
- องค์ประกอบ:
- ตัวอย่าง:
- ไฟล์ XML ที่บันทึกไว้ที่
res/values/dimens.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>
โค้ดแอปพลิเคชันต่อไปนี้จะดึงมิติข้อมูล
Kotlin
val fontSize: Float =
resources
.getDimension
(R.dimen.font_size)Java
Resources res =
getResources()
; float fontSize = res.getDimension
(R.dimen.font_size);XML การออกแบบต่อไปนี้นำมิติข้อมูลไปใช้กับแอตทริบิวต์
<TextView android:layout_height="@dimen/textview_height" android:layout_width="@dimen/textview_width" android:textSize="@dimen/font_size"/>
res/values/filename.xml
รหัส
รหัสทรัพยากรที่ไม่ซ้ำกันที่กำหนดไว้ใน XML การใช้ชื่อที่คุณระบุใน <item>
เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ Android จะสร้างจำนวนเต็มที่ไม่ซ้ำกันในชั้นเรียน R.java
ของโครงการ ซึ่งคุณสามารถใช้เป็น
สำหรับทรัพยากรของแอปพลิเคชัน เช่น View
ในการจัดวาง UI ของคุณ
หรือจำนวนเต็มที่ไม่ซ้ำกันเพื่อใช้ในโค้ดของแอปพลิเคชัน เช่น รหัสของกล่องโต้ตอบ
รหัสผลลัพธ์
หมายเหตุ: รหัสเป็นแหล่งข้อมูลพื้นฐานที่มีการอ้างอิง
โดยใช้ค่าที่ระบุในแอตทริบิวต์ name
ไม่ใช่ชื่อไฟล์ XML อาส
คุณสามารถรวมทรัพยากร ID เข้ากับทรัพยากรง่ายๆ อื่นๆ ในไฟล์ XML เดียว
ภายใต้องค์ประกอบ <resources>
1 รายการ นอกจากนี้ ทรัพยากร ID จะไม่อ้างอิง
รายการทรัพยากรจริง: เป็นรหัสที่ไม่ซ้ำกันซึ่งคุณสามารถแนบไปกับทรัพยากรหรือใช้
เป็นจำนวนเต็มเฉพาะในแอปพลิเคชัน
- ตำแหน่งที่ตั้งไฟล์:
- ตั้งชื่อไฟล์ตามใจชอบ
- การอ้างอิงทรัพยากร:
-
ใน Java:
R.id.name
ใน XML:@[package:]id/name
- ไวยากรณ์:
-
<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="id_name" /> </resources>
- องค์ประกอบ:
- ตัวอย่าง:
-
ไฟล์ XML ที่บันทึกไว้ที่
res/values/ids.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <item type="id" name="button_ok" /> <item type="id" name="dialog_exit" /> </resources>
ข้อมูลโค้ดเลย์เอาต์ต่อไปนี้ใช้รหัส
"button_ok"
สำหรับวิดเจ็ตButton
<Button android:id="@id/button_ok" style="@style/button_style" />
ค่า
android:id
ที่นี่ไม่มีเครื่องหมายบวกในการอ้างอิงรหัส เพราะมีรหัสอยู่แล้วตามที่กำหนดไว้ในตัวอย่างids.xml
ก่อนหน้านี้ เมื่อคุณระบุ รหัสไปยังทรัพยากร XML โดยใช้เครื่องหมายบวกในรูปแบบandroid:id="@+id/name"
ซึ่งหมายความว่ายังไม่มีรหัส"name"
และมีการสร้างรหัสขึ้นอีกตัวอย่างหนึ่ง ข้อมูลโค้ดต่อไปนี้ใช้รหัส
"dialog_exit"
เป็นตัวระบุที่ไม่ซ้ำกัน สำหรับกล่องโต้ตอบKotlin
showDialog
(R.id.dialog_exit)Java
showDialog
(R.id.dialog_exit);ในแอปพลิเคชันเดียวกัน ระบบจะเปรียบเทียบรหัส
"dialog_exit"
เมื่อสร้างกล่องโต้ตอบ ดังนี้Kotlin
override fun
onCreateDialog
(id: Int): Dialog? { return when(id) { R.id.dialog_exit -> { ... } else -> { null } } }Java
protected Dialog
onCreateDialog
(int id) { Dialog dialog; switch(id) { case R.id.dialog_exit: ... break; default: dialog = null; } return dialog; }
res/values/filename.xml
จำนวนเต็ม
จำนวนเต็มที่กำหนดไว้ใน XML
หมายเหตุ: จำนวนเต็มเป็นแหล่งข้อมูลพื้นฐานที่ใช้อ้างอิง
โดยใช้ค่าที่ระบุในแอตทริบิวต์ name
ไม่ใช่ชื่อไฟล์ XML อาส
คุณสามารถรวมทรัพยากรจำนวนเต็มกับทรัพยากรพื้นฐานอื่นๆ ไว้ในไฟล์ XML เดียว
ภายใต้องค์ประกอบ <resources>
1 รายการ
- ตำแหน่งที่ตั้งไฟล์:
-
ตั้งชื่อไฟล์ตามใจชอบ
name
ขององค์ประกอบ<integer>
จะใช้เป็น รหัสทรัพยากร - การอ้างอิงทรัพยากร:
-
ใน 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>
- องค์ประกอบ:
- ตัวอย่าง:
-
ไฟล์ XML ที่บันทึกไว้ที่
res/values/integers.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <integer name="max_speed">75</integer> <integer name="min_speed">5</integer> </resources>
รหัสแอปพลิเคชันต่อไปนี้จะดึงจำนวนเต็ม
Kotlin
val maxSpeed: Int =
resources
.getInteger
(R.integer.max_speed)Java
Resources res =
getResources()
; int maxSpeed = res.getInteger
(R.integer.max_speed);
res/values/filename.xml
อาร์เรย์จำนวนเต็ม
อาร์เรย์ของจำนวนเต็มที่กำหนดไว้ใน XML
หมายเหตุ: อาร์เรย์จำนวนเต็มเป็นทรัพยากรที่เรียบง่ายที่ใช้อ้างอิง
โดยใช้ค่าที่ระบุในแอตทริบิวต์ name
ไม่ใช่ชื่อไฟล์ XML อาส
คุณสามารถรวมทรัพยากรอาร์เรย์แบบจำนวนเต็มกับทรัพยากรพื้นฐานอื่นๆ ในไฟล์ XML เดียวได้
ภายใต้องค์ประกอบ <resources>
1 รายการ
- ตำแหน่งที่ตั้งไฟล์:
-
ตั้งชื่อไฟล์ตามใจชอบ
name
ขององค์ประกอบ<integer-array>
จะใช้เป็น รหัสทรัพยากร - ประเภทข้อมูลทรัพยากรที่คอมไพล์:
- ตัวชี้แหล่งข้อมูลไปยังอาร์เรย์ของจำนวนเต็ม
- การอ้างอิงทรัพยากร:
-
ใน 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>
- องค์ประกอบ:
- ตัวอย่าง:
- ไฟล์ XML ที่บันทึกไว้ที่
res/values/integers.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>
โค้ดแอปพลิเคชันต่อไปนี้จะเรียกอาร์เรย์จำนวนเต็ม
Kotlin
val bits: IntArray =
resources
.getIntArray
(R.array.bits)Java
Resources res =
getResources()
; int[] bits = res.getIntArray
(R.array.bits);
res/values/filename.xml
อาร์เรย์ที่พิมพ์
TypedArray
ที่กำหนดไว้ใน XML คุณสามารถใช้
เพื่อสร้างอาร์เรย์ของทรัพยากรอื่นๆ เช่น ทรัพยากรที่ถอนออกได้ อาร์เรย์ไม่จำเป็นต้องเป็นข้อมูลที่เท่ากัน คุณจึงสร้างอาร์เรย์ของประเภททรัพยากรแบบผสมได้
ต้องทราบว่าประเภทข้อมูลอยู่ในอาร์เรย์ใดและที่ไหน เพื่อที่คุณจะได้ดึงข้อมูลได้อย่างเหมาะสม
แต่ละรายการด้วยเมธอด get...()
ของชั้นเรียน TypedArray
หมายเหตุ: อาร์เรย์ประเภทเป็นทรัพยากรที่เรียบง่ายที่ใช้อ้างอิง
โดยใช้ค่าที่ระบุในแอตทริบิวต์ name
ไม่ใช่ชื่อไฟล์ XML อาส
คุณสามารถรวมทรัพยากรอาร์เรย์ที่มีประเภท เข้ากับทรัพยากรง่ายๆ อื่นๆ ในไฟล์ XML เดียว
ภายใต้องค์ประกอบ <resources>
1 รายการ
- ตำแหน่งที่ตั้งไฟล์:
-
ตั้งชื่อไฟล์ตามใจชอบ
name
ขององค์ประกอบ<array>
จะใช้เป็น รหัสทรัพยากร - ประเภทข้อมูลทรัพยากรที่คอมไพล์:
- ตัวชี้แหล่งข้อมูลไปยัง
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>
- องค์ประกอบ:
- ตัวอย่าง:
- ไฟล์ XML ที่บันทึกไว้ที่
res/values/arrays.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>
โค้ดแอปพลิเคชันต่อไปนี้จะเรียกแต่ละอาร์เรย์ จากนั้นจึงรับรายการแรกในแต่ละอาร์เรย์
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)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);
res/values/filename.xml