Google uses AI technology to translate content into your preferred language. AI translations can contain errors.
ทรัพยากรรายการสถานะสี
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ColorStateList
เป็นวัตถุที่คุณสามารถกำหนดใน XML และใช้เป็นสีที่เปลี่ยนสีจริงโดยขึ้นอยู่กับ
สถานะของออบเจ็กต์ View
ด้วย ตัวอย่างเช่น Button
วิดเจ็ตอาจมีอยู่ในได้หลายสถานะ ได้แก่ กด โฟกัส หรือไม่ทั้งคู่ การใช้รายการสถานะสี
คุณสามารถระบุสีที่แตกต่างกันสำหรับแต่ละรัฐได้
คุณอธิบายรายการรัฐในไฟล์ XML แต่ละสีจะกำหนดไว้ในองค์ประกอบ <item> ภายในองค์ประกอบ <selector> รายการเดียว แต่ละ<item>
ใช้แอตทริบิวต์ที่หลากหลายเพื่ออธิบายรัฐที่ใช้
ในระหว่างการเปลี่ยนสถานะแต่ละครั้ง รายการรัฐจะข้ามผ่านจากบนลงล่าง และเป็นรายการแรกที่
ตรงกับสถานะปัจจุบันที่ใช้ การเลือกไม่ได้อิงตามรายการที่ "ดีที่สุด"
แต่เป็นรายการแรกที่ตรงกับเกณฑ์ขั้นต่ำของรัฐ
หมายเหตุ: หากต้องการระบุแหล่งข้อมูลสีคงที่ ให้ใช้
สี color ง่ายๆ
- ตำแหน่งที่ตั้งไฟล์:
res/color/filename.xml -
ชื่อไฟล์จะใช้เป็นรหัสทรัพยากร
- ประเภทข้อมูลทรัพยากรที่คอมไพล์:
- ตัวชี้แหล่งข้อมูลไปยัง
ColorStateList
- การอ้างอิงทรัพยากร:
-
ใน Java:
R.color.filename
ใน XML: @[package:]color/filename
- ไวยากรณ์:
-
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="hex_color"
android:lStar="floating_point_value"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
- องค์ประกอบ:
-
<selector>
- ต้องระบุ นี่คือองค์ประกอบรูท มีองค์ประกอบ
<item> อย่างน้อย 1 รายการ
แอตทริบิวต์:
xmlns:android
- สตริง ต้องระบุ กำหนดเนมสเปซ XML ซึ่งก็คือ
"http://schemas.android.com/apk/res/android"
<item>
- กำหนดสีที่จะใช้ในบางรัฐตามที่อธิบายไว้ในแอตทริบิวต์ของสี เป็น
ย่อยขององค์ประกอบ
<selector>
แอตทริบิวต์:
android:color
- สีแบบเลขฐานสิบหก ต้องระบุ ระบุสีด้วยแอตทริบิวต์
ค่า RGB และช่องทางอัลฟ่าที่ไม่บังคับ
ค่านี้มักจะขึ้นต้นด้วยอักขระสี่เหลี่ยม (#) ตามด้วยอักขระ
ข้อมูล Alpha-Red-Green-Blue ในรูปแบบใดรูปแบบหนึ่งต่อไปนี้
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
android:lStar
- จุดทศนิยม ไม่บังคับ แอตทริบิวต์นี้จะแก้ไขความสว่างทางการรับรู้ของสีฐาน โดยใช้ทั้ง
ค่าจุดลอยตัวระหว่าง 0 ถึง 100 หรือแอตทริบิวต์ธีมที่ได้รับการแก้ไข รายการ
สีโดยรวมจะคำนวณโดยการแปลงสีพื้นฐานเป็นพื้นที่สีที่เหมาะกับการช่วยเหลือพิเศษ
และตั้งค่า L* เป็นค่าที่ระบุในแอตทริบิวต์
lStar
ตัวอย่าง: android:lStar="50"
android:state_pressed
- บูลีน
"true" หากใช้รายการนี้เมื่อมีการแตะวัตถุ เช่น เมื่อมีปุ่ม
ถูกแตะหรือคลิก หากใช้งานรายการนี้ในสถานะเริ่มต้นคือไม่ถูกแตะ และเป็น "false"
android:state_focused
- บูลีน
"true" หากใช้รายการนี้เมื่อโฟกัสวัตถุ เช่น เมื่อปุ่ม
จะถูกไฮไลต์โดยใช้แทร็กบอลหรือ D-pad หากเลือก "รายการนี้" เป็นค่าเริ่มต้น ระบบจะราคา "false"
สถานะที่ไม่ได้มุ่งเน้น
android:state_selected
- บูลีน
"true" หากใช้รายการนี้เมื่อเลือกออบเจ็กต์ เช่น เมื่อ
เปิดอยู่ ค่าดังกล่าวเป็น "false" หากใช้รายการนี้เมื่อไม่ได้เลือกออบเจ็กต์
android:state_checkable
- บูลีน
"true" หากใช้รายการนี้เมื่อตรวจสอบออบเจ็กต์ได้ อุณหภูมิ "false" หากเป็นเช่นนี้
จะใช้เมื่อตรวจสอบออบเจ็กต์ไม่ได้ มีประโยชน์เมื่อออบเจ็กต์สามารถ
การเปลี่ยนไปมาระหว่างวิดเจ็ตที่ทำเครื่องหมายได้และไม่ได้
android:state_checked
- บูลีน
"true" หากใช้รายการนี้เมื่อเลือกออบเจ็กต์ อุณหภูมิ "false" หากเป็น
ใช้เมื่อยกเลิกการเลือกออบเจ็กต์
android:state_enabled
- บูลีน
"true" หากใช้รายการนี้เมื่อเปิดใช้ออบเจ็กต์ คุณจะดำเนินการต่อไปนี้ได้
การได้รับกิจกรรมการสัมผัสหรือการคลิก โดยค่าจะเป็น "false" หากใช้เมื่อปิดใช้ออบเจ็กต์
android:state_window_focused
- บูลีน
"true" หากใช้รายการนี้เมื่อหน้าต่างแอปพลิเคชันโฟกัสอยู่
ซึ่งหมายถึง
อยู่เบื้องหน้า เป็น "false" หากใช้รายการนี้เมื่อแอปพลิเคชัน
จะไม่มีโฟกัส เช่น หากหน้าต่างแจ้งเตือนถูกดึงลงหรือกล่องโต้ตอบปรากฏขึ้น
หมายเหตุ: รายการแรกในรายการรัฐที่
ตรงกับสถานะปัจจุบันของอ็อบเจกต์ที่จะนำมาใช้ ดังนั้น ถ้ารายการแรกในลิสต์มี
ไม่มีแอตทริบิวต์สถานะก่อนหน้า ดังนั้นจึงมีการใช้ทุกครั้ง ด้วยเหตุนี้ โปรดวาง
ค่าเริ่มต้นสุดท้าย ดังที่แสดงในตัวอย่างต่อไปนี้
- ตัวอย่าง:
- ไฟล์ XML ที่บันทึกไว้ที่
res/color/button_text.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
XML เลย์เอาต์ต่อไปนี้จะใช้รายการสีกับ View
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text" />
- ดูเพิ่มเติม
-
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[null,null,["อัปเดตล่าสุด 2025-07-27 UTC"],[],[]]