สไตล์และธีมใน Android ช่วยให้คุณแยกรายละเอียดการออกแบบแอปออกจากโครงสร้างและลักษณะการทํางานของ UI ได้ ซึ่งคล้ายกับสไตล์ชีตในการออกแบบเว็บ
style คือคอลเล็กชันของแอตทริบิวต์ที่ระบุลักษณะที่ปรากฏของ View
รายการเดียว รูปแบบสามารถระบุแอตทริบิวต์ต่างๆ ได้ เช่น สีแบบอักษร ขนาดแบบอักษร สีพื้นหลัง และอื่นๆ อีกมากมาย
ธีมคือชุดแอตทริบิวต์ที่ใช้กับลําดับชั้นทั้งแอป กิจกรรม หรือมุมมอง ไม่ใช่แค่มุมมองเดียว เมื่อคุณใช้ธีม มุมมองทั้งหมดในแอปหรือกิจกรรมจะใช้แอตทริบิวต์แต่ละรายการของธีมนั้นที่รองรับ และยังนำรูปแบบไปใช้กับ องค์ประกอบที่ไม่ได้ดู เช่น แถบสถานะและพื้นหลังของหน้าต่าง
รูปแบบและธีมจะประกาศในไฟล์ทรัพยากรรูปแบบใน res/values/
ซึ่งมักจะมีชื่อว่า styles.xml

รูปที่ 1 กิจกรรมเดียวกันมี 2 ธีม ดังนี้
Theme.AppCompat
(ซ้าย) และ Theme.AppCompat.Light
(ขวา)
ธีมกับสไตล์
ธีมและสไตล์มีความคล้ายคลึงกันมาก แต่มีการนำไปใช้เพื่อวัตถุประสงค์ที่แตกต่างกัน ธีมและ มีโครงสร้างพื้นฐานเหมือนกัน คือคู่คีย์-ค่าที่แมปแอตทริบิวต์ แหล่งข้อมูล
style จะระบุแอตทริบิวต์สำหรับประเภทมุมมองหนึ่งๆ โดยเฉพาะ เช่น สไตล์หนึ่งอาจเป็น ระบุแอตทริบิวต์ของปุ่ม แอตทริบิวต์ทั้งหมดที่คุณระบุในรูปแบบคือแอตทริบิวต์ที่คุณสามารถตั้งค่า ไฟล์เลย์เอาต์ การสกัดแอตทริบิวต์ทั้งหมดไปยังรูปแบบช่วยให้คุณใช้และดูแลรักษาแอตทริบิวต์เหล่านั้นในวิดเจ็ตหลายรายการได้ง่ายๆ
ธีมจะกำหนดคอลเล็กชันทรัพยากรที่มีชื่อซึ่งอ้างอิงตามสไตล์ เลย์เอาต์ วิดเจ็ต และอื่นๆ ได้ ธีมจะกำหนดชื่อเชิงความหมาย เช่น colorPrimary
ให้กับทรัพยากร Android
สไตล์และธีมควรทำงานร่วมกัน เช่น คุณอาจมีสไตล์ที่ระบุว่าส่วนหนึ่งของปุ่มเป็น colorPrimary
และอีกส่วนหนึ่งเป็น colorSecondary
คำจำกัดความที่แท้จริงของสีดังกล่าวจะแสดงอยู่ในธีม วันและเวลา
อุปกรณ์จะเข้าสู่โหมดกลางคืน แอปของคุณเปลี่ยนจาก "แสง" ได้ เปลี่ยนเป็น "สีเข้ม" ธีม
เปลี่ยนค่าของชื่อทรัพยากรทั้งหมด คุณไม่จำเป็นต้องเปลี่ยนแปลงรูปแบบ เนื่องจาก
จะใช้ชื่อความหมาย ไม่ใช่คำนิยามของสี
ดูข้อมูลเพิ่มเติมเกี่ยวกับการทำงานร่วมกันของธีมและรูปแบบต่างๆ ได้ที่บล็อกโพสต์ การจัดรูปแบบ Android: ธีมเทียบกับสไตล์
สร้างและใช้สไตล์
หากต้องการสร้างรูปแบบใหม่ ให้เปิดไฟล์ res/values/styles.xml
ของโปรเจ็กต์ สําหรับสไตล์แต่ละแบบที่ต้องการสร้าง ให้ทําตามขั้นตอนต่อไปนี้
- เพิ่มองค์ประกอบ
<style>
โดยใช้ชื่อที่ระบุรูปแบบไม่ซ้ำกัน - เพิ่มองค์ประกอบ
<item>
สำหรับแอตทริบิวต์สไตล์แต่ละรายการที่คุณต้องการกำหนดname
ในแต่ละรายการจะระบุแอตทริบิวต์ที่คุณใช้เป็นแอตทริบิวต์ XML ใน เลย์เอาต์ ค่าในองค์ประกอบ<item>
คือค่าสำหรับแอตทริบิวต์นั้น
ตัวอย่างเช่น สมมติว่าคุณกําหนดสไตล์ต่อไปนี้
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="GreenText" parent="TextAppearance.AppCompat"> <item name="android:textColor">#00FF00</item> </style> </resources>
คุณใช้สไตล์กับมุมมองได้โดยทำดังนี้
<TextView style="@style/GreenText" ... />
แอตทริบิวต์แต่ละรายการที่ระบุในรูปแบบจะนำไปใช้กับข้อมูลพร็อพเพอร์ตี้นั้นหากข้อมูลพร็อพเพอร์ตี้นั้นยอมรับ วิว ไม่สนใจแอตทริบิวต์ที่ไม่ยอมรับ
อย่างไรก็ตาม แทนที่จะใช้รูปแบบกับการแสดงผลแต่ละรายการ คุณมักจะ ใช้รูปแบบเป็นธีมสำหรับทั้งแอป กิจกรรม หรือคอลเล็กชัน ตามที่อธิบายไว้ในส่วนอื่นของคู่มือนี้
ขยายและปรับแต่งสไตล์
เมื่อสร้างสไตล์ของคุณเอง ให้ขยายสไตล์ที่มีอยู่จากเฟรมเวิร์กหรือคลังการสนับสนุนเสมอเพื่อให้เข้ากันได้กับสไตล์ UI ของแพลตฟอร์ม หากต้องการขยายรูปแบบ ให้ระบุ
รูปแบบที่คุณต้องการขยายด้วยแอตทริบิวต์ parent
จากนั้นคุณสามารถลบล้างแอตทริบิวต์สไตล์ที่รับค่ามาและเพิ่มแอตทริบิวต์ใหม่ได้
เช่น คุณสามารถรับค่าลักษณะที่ปรากฏของข้อความเริ่มต้นของแพลตฟอร์ม Android และแก้ไขได้ตามตัวอย่างต่อไปนี้
<style name="GreenText" parent="@android:style/TextAppearance"> <item name="android:textColor">#00FF00</item> </style>
อย่างไรก็ตาม คุณควรใช้รูปแบบแอปหลักจากไลบรารีการสนับสนุนของ Android เสมอ สไตล์ใน
ไลบรารีการสนับสนุนมีความเข้ากันได้โดยการเพิ่มประสิทธิภาพแต่ละรูปแบบสำหรับแอตทริบิวต์ UI ที่มีอยู่ใน
แต่ละเวอร์ชัน สไตล์ของคลังการสนับสนุนมักจะมีชื่อคล้ายกับสไตล์จากแพลตฟอร์ม แต่จะมี AppCompat
อยู่ด้วย
หากต้องการรับรูปแบบจากไลบรารีหรือโปรเจ็กต์ของคุณเอง ให้ประกาศชื่อรูปแบบระดับบนสุด
ไม่มีส่วน @android:style/
ที่แสดงในตัวอย่างก่อนหน้านี้ ตัวอย่างเช่น
ตัวอย่างต่อไปนี้รับรูปแบบลักษณะของข้อความจากไลบรารีการสนับสนุน
<style name="GreenText" parent="TextAppearance.AppCompat"> <item name="android:textColor">#00FF00</item> </style>
นอกจากนี้ คุณยังรับค่ารูปแบบ (ยกเว้นรูปแบบจากแพลตฟอร์ม) ได้โดยขยายชื่อรูปแบบด้วยเครื่องหมายจุดแทนการใช้แอตทริบิวต์ parent
กล่าวคือ ให้ใส่ชื่อสไตล์ที่ต้องการรับค่าต่อไว้หน้าชื่อสไตล์ของคุณ โดยคั่นด้วยเครื่องหมายจุด คุณ
โดยปกติจะทำแบบนี้เมื่อขยายสไตล์ของคุณเองเท่านั้น ไม่ใช่เมื่อขยายสไตล์จากไลบรารีอื่นๆ ตัวอย่างเช่น
รูปแบบต่อไปนี้รับค่าลักษณะทั้งหมดจาก GreenText
ในตัวอย่างก่อนหน้านี้
จากนั้นจะเพิ่มขนาดข้อความ
<style name="GreenText.Large"> <item name="android:textSize">22dp</item> </style>
คุณสามารถรับค่ารูปแบบเช่นนี้ซ้ำได้หลายครั้งตามต้องการโดยต่อเชื่อมชื่อเพิ่มเติม
หากต้องการดูว่าแอตทริบิวต์ใดที่คุณประกาศได้ด้วยแท็ก <item>
โปรดดู "XML
แอตทริบิวต์" ในการอ้างอิงคลาสต่างๆ รองรับข้อมูลพร็อพเพอร์ตี้ทั้งหมด
แอตทริบิวต์ XML จากฐาน
View
คลาส และข้อมูลพร็อพเพอร์ตี้จำนวนมากเพิ่มแอตทริบิวต์พิเศษของตนเอง ตัวอย่างเช่น พารามิเตอร์
แอตทริบิวต์ XML TextView
รายการ
มี
android:inputType
ที่คุณสามารถใช้กับมุมมองข้อความที่ได้รับอินพุต เช่น
วิดเจ็ต EditText
ใช้รูปแบบเป็นธีม
คุณสร้างธีมได้เช่นเดียวกับการสร้างสไตล์ ความแตกต่างจะอยู่ที่วิธีการใช้งาน ดังนี้
แทนที่จะใช้รูปแบบที่มีแอตทริบิวต์ style
ในมุมมอง ให้ใช้ธีมด้วย
แอตทริบิวต์ android:theme
ในแท็ก <application>
หรือแท็ก
<activity>
ในไฟล์ AndroidManifest.xml
ตัวอย่างเช่น วิธีใช้ธีม "มืด" ของ Material Design ในคลังการสนับสนุนของ Android กับทั้งแอปมีดังนี้
<manifest ... > <application android:theme="@style/Theme.AppCompat" ... > </application> </manifest>
และวิธีใช้ธีม "light" กับกิจกรรมเดียวมีดังนี้
<manifest ... > <application ... > <activity android:theme="@style/Theme.AppCompat.Light" ... > </activity> </application> </manifest>
มุมมองทั้งหมดในแอปหรือกิจกรรมจะใช้สไตล์ที่รองรับจากสไตล์ที่กําหนดไว้ในธีมนั้นๆ หากมุมมองรองรับเฉพาะแอตทริบิวต์บางรายการที่ประกาศไว้ในสไตล์ มุมมองจะใช้เฉพาะแอตทริบิวต์เหล่านั้นและละเว้นแอตทริบิวต์ที่ไม่รองรับ
ตั้งแต่ Android 5.0 (API ระดับ 21) และ Android Support Library v22.1 เป็นต้นไป คุณจะระบุแอตทริบิวต์ android:theme
ให้กับมุมมองในไฟล์เลย์เอาต์ได้ด้วย การดำเนินการนี้จะแก้ไขธีมสำหรับ
มุมมองนั้นและมุมมองย่อย ซึ่งมีประโยชน์ในการแก้จานสีของธีมใน
ในอินเทอร์เฟซของคุณ
ตัวอย่างก่อนหน้านี้แสดงวิธีใช้ธีม เช่น Theme.AppCompat
ที่มาจาก Android Support Library แต่โดยปกติแล้วคุณต้องการปรับแต่งธีมให้พอดี
แบรนด์ของแอปคุณ วิธีที่ดีที่สุดคือขยายสไตล์เหล่านี้จากคลังการสนับสนุนและลบล้างแอตทริบิวต์บางส่วนตามที่อธิบายไว้ในส่วนต่อไปนี้
ลําดับชั้นของสไตล์
Android ให้คุณตั้งค่าแอตทริบิวต์ในแอป Android ได้หลายวิธี ตัวอย่างเช่น คุณสามารถตั้งค่าแอตทริบิวต์โดยตรงในเค้าโครง นำสไตล์ไปใช้กับมุมมอง ใช้ธีมกับการออกแบบ และ ตั้งค่าแอตทริบิวต์แบบเป็นโปรแกรมได้ด้วย
เมื่อเลือกวิธีจัดสไตล์แอป ให้คำนึงถึงลําดับชั้นของสไตล์ Android โดยทั่วไปแล้ว ให้ใช้ธีมและสไตล์ให้มากที่สุดเพื่อให้สอดคล้องกัน หากคุณระบุแอตทริบิวต์เดียวกันใน หลายๆ ตำแหน่ง รายการต่อไปนี้จะเป็นตัวกำหนดว่าแอตทริบิวต์ใดที่จะนำมาใช้ในท้ายที่สุด รายการจะเรียงลำดับจากความสำคัญสูงสุดไปต่ำสุด
- การใช้การจัดรูปแบบระดับอักขระหรือระดับย่อหน้าโดยใช้ช่วงข้อความกับคลาสที่มาจาก
TextView
- การใช้แอตทริบิวต์แบบเป็นโปรแกรม
- การใช้แอตทริบิวต์แต่ละรายการกับข้อมูลพร็อพเพอร์ตี้โดยตรง
- การใช้รูปแบบกับข้อมูลพร็อพเพอร์ตี้
- การจัดรูปแบบเริ่มต้น
- การใช้ธีมกับคอลเล็กชันมุมมอง กิจกรรม หรือทั้งแอป
- การใช้การจัดรูปแบบที่เจาะจงสำหรับบางมุมมอง เช่น การตั้งค่า
TextAppearance
ในTextView

รูปที่ 2 การจัดสไตล์จาก span
จะลบล้างการจัดสไตล์จาก textAppearance
TextAppearance
ข้อจํากัดอย่างหนึ่งของสไตล์คือคุณใช้สไตล์กับ View
ได้เพียงสไตล์เดียว อย่างไรก็ตาม ใน TextView
คุณยังระบุแอตทริบิวต์ TextAppearance
ที่ทํางานคล้ายกับสไตล์ได้ด้วย ดังที่แสดงในตัวอย่างต่อไปนี้
<TextView ... android:textAppearance="@android:style/TextAppearance.Material.Headline" android:text="This text is styled via textAppearance!" />
TextAppearance
ช่วยให้คุณกำหนดการจัดรูปแบบเฉพาะข้อความได้ในขณะที่ยังคงใช้สไตล์ของ View
กับการใช้งานอื่นๆ ได้ อย่างไรก็ตาม โปรดทราบว่าหากคุณกำหนดแอตทริบิวต์ข้อความใน View
หรือในสไตล์โดยตรง ค่าเหล่านั้นจะลบล้างค่า TextAppearance
TextAppearance
รองรับชุดย่อยของแอตทริบิวต์การจัดรูปแบบที่ TextView
Google ดูรายการแอตทริบิวต์ทั้งหมดได้ที่
TextAppearance
แอตทริบิวต์ TextView
ทั่วไปบางส่วนที่ไม่ได้รวมไว้ ได้แก่
lineHeight[Multiplier|Extra]
lines
,
breakStrategy
และ
hyphenationFrequency
TextAppearance
ทำงานที่ระดับอักขระ ไม่ใช่ระดับย่อหน้า ดังนั้น
ระบบไม่รองรับแอตทริบิวต์ที่ส่งผลต่อเลย์เอาต์ทั้งหมด
ปรับแต่งธีมเริ่มต้น
เมื่อคุณสร้างโปรเจ็กต์ด้วย Android Studio ระบบจะใช้ธีม Material Design กับแอปโดยค่าเริ่มต้นตามที่ระบุไว้ในไฟล์ styles.xml
ของโปรเจ็กต์ สไตล์ AppTheme
นี้
ขยายธีมจากไลบรารีการสนับสนุนและมีการลบล้างสำหรับแอตทริบิวต์สีที่ใช้
ตามองค์ประกอบ UI หลัก เช่น แถบแอป และ
ปุ่มการทำงานแบบลอย หากใช้ คุณ
คุณจะปรับแต่งการออกแบบสีของแอปได้อย่างรวดเร็วด้วยการอัปเดตสีที่ให้ไว้
ตัวอย่างเช่น ไฟล์ styles.xml
ของคุณมีลักษณะคล้ายกับด้านล่างนี้
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>
ค่ารูปแบบอ้างอิงถึงการอ้างอิงอื่นๆ
ทรัพยากรสี ซึ่งระบุไว้ในฟิลด์
res/values/colors.xml
ของโครงการ ไฟล์ดังกล่าวคือไฟล์ที่คุณแก้ไขเพื่อเปลี่ยนสี
ดูภาพรวมสีของ Material Design เพื่อปรับปรุงประสบการณ์ของผู้ใช้ด้วยสีแบบไดนามิกและสีที่กำหนดเองเพิ่มเติม
เมื่อทราบสีแล้ว ให้อัปเดตค่าใน res/values/colors.xml
ดังนี้
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- Color for the app bar and other primary UI elements. --> <color name="colorPrimary">#3F51B5</color> <!-- A darker variant of the primary color, used for the status bar (on Android 5.0+) and contextual app bars. --> <color name="colorPrimaryDark">#303F9F</color> <!-- a secondary color for controls like checkboxes and text fields. --> <color name="colorAccent">#FF4081</color> </resources>
จากนั้นคุณสามารถลบล้างสไตล์อื่นๆ ที่ต้องการ เช่น คุณอาจเปลี่ยนกิจกรรม โดยมีสีพื้นหลังดังนี้
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> ... <item name="android:windowBackground">@color/activityBackground</item> </style>
สำหรับรายการแอตทริบิวต์ที่คุณสามารถใช้ในธีม โปรดดูตารางแอตทริบิวต์ที่
R.styleable.Theme
เมื่อเพิ่ม
สำหรับมุมมองในการจัดวาง คุณสามารถค้นหาแอตทริบิวต์โดยดูที่ "แอตทริบิวต์ XML"
ตารางในมุมมองการอ้างอิงคลาส ตัวอย่างเช่น มุมมองทั้งหมดรองรับแอตทริบิวต์ XML จากView
คลาสพื้นฐาน
แอตทริบิวต์ส่วนใหญ่ใช้กับข้อมูลพร็อพเพอร์ตี้บางประเภท และบางส่วนใช้กับข้อมูลพร็อพเพอร์ตี้ทั้งหมด อย่างไรก็ตาม
แอตทริบิวต์ธีมบางรายการที่
R.styleable.Theme
มีผลกับ
หน้าต่างกิจกรรม ไม่ใช่มุมมองในเค้าโครง เช่น windowBackground
เปลี่ยนพื้นหลังของหน้าต่าง และ windowEnterTransition
กําหนดภาพเคลื่อนไหวการเปลี่ยนฉากที่จะใช้เมื่อกิจกรรมเริ่มต้น โปรดดูรายละเอียดเพิ่มเติมที่ เริ่ม
กิจกรรมที่ใช้ภาพเคลื่อนไหว
นอกจากนี้ ไลบรารีการสนับสนุนของ Android ยังมีแอตทริบิวต์อื่นๆ ที่คุณสามารถใช้เพื่อปรับแต่งธีมได้
ขยายจาก Theme.AppCompat
เช่น แอตทริบิวต์ colorPrimary
ที่แสดงใน
ตัวอย่างก่อนหน้านี้ ซึ่งมียอดดูสูงสุดใน
ไฟล์ attrs.xml
ของlibrary
นอกจากนี้ ยังมีธีมอื่นๆ จากคลังการสนับสนุนที่คุณอาจต้องการขยายการใช้งานแทนธีมที่แสดงในตัวอย่างก่อนหน้านี้ แหล่งที่ดีที่สุดในการดูธีมที่ใช้ได้มีไฟล์ themes.xml
ของคลัง
เพิ่มสไตล์เฉพาะเวอร์ชัน
หาก Android เวอร์ชันใหม่เพิ่มแอตทริบิวต์ของธีมที่ต้องการใช้ คุณก็เพิ่มแอตทริบิวต์เหล่านี้ลงในธีมได้
ในขณะที่ยังใช้ได้กับเวอร์ชันเก่า สิ่งที่ต้องมีคือไฟล์ styles.xml
ไฟล์อื่นที่บันทึกไว้ในไดเรกทอรี values
ซึ่งมีตัวระบุเวอร์ชันทรัพยากร ดังนี้
res/values/styles.xml # themes for all versions res/values-v21/styles.xml # themes for API level 21+ only
เนื่องจากรูปแบบในไฟล์ values/styles.xml
ใช้ได้กับทุกเวอร์ชัน ธีมของคุณใน values-v21/styles.xml
จึงรับรูปแบบเหล่านั้นได้ ซึ่งหมายความว่าคุณจะหลีกเลี่ยงการใช้สไตล์ซ้ำได้โดยเริ่มจากธีม "พื้นฐาน" แล้วขยายธีมนั้นในสไตล์สำหรับเวอร์ชันที่เฉพาะเจาะจง
เช่น หากต้องการประกาศการเปลี่ยนหน้าต่างสำหรับ Android 5.0 (API ระดับ 21) ขึ้นไป คุณต้องมี
เพื่อใช้แอตทริบิวต์ใหม่ ธีมพื้นฐานใน res/values/styles.xml
อาจมีลักษณะดังนี้
ดังนี้
<resources> <!-- Base set of styles that apply to all versions. --> <style name="BaseAppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="colorPrimary">@color/primaryColor</item> <item name="colorPrimaryDark">@color/primaryTextColor</item> <item name="colorAccent">@color/secondaryColor</item> </style> <!-- Declare the theme name that's actually applied in the manifest file. --> <style name="AppTheme" parent="BaseAppTheme" /> </resources>
จากนั้นเพิ่มสไตล์สำหรับเวอร์ชันที่เฉพาะเจาะจงใน res/values-v21/styles.xml
ดังนี้
<resources> <!-- extend the base theme to add styles available only with API level 21+ --> <style name="AppTheme" parent="BaseAppTheme"> <item name="android:windowActivityTransitions">true</item> <item name="android:windowEnterTransition">@android:transition/slide_right</item> <item name="android:windowExitTransition">@android:transition/slide_left</item> </style> </resources>
ตอนนี้คุณสามารถใช้ AppTheme
ในไฟล์ Manifest แล้วระบบจะเลือกรูปแบบ
ที่พร้อมใช้งานสำหรับระบบแต่ละเวอร์ชัน
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการใช้ทรัพยากรอื่นสำหรับอุปกรณ์ต่างๆ โปรดดู การระบุทรัพยากรอื่น
ปรับแต่งสไตล์วิดเจ็ต
วิดเจ็ตทั้งหมดในเฟรมเวิร์กและไลบรารีการสนับสนุนมีรูปแบบเริ่มต้น ตัวอย่างเช่น เมื่อคุณ
จัดรูปแบบแอปโดยใช้ธีมจากไลบรารีการสนับสนุน เช่น
Button
ได้รับการจัดรูปแบบโดยใช้
รูปแบบ Widget.AppCompat.Button
ถ้าคุณต้องการใช้วิดเจ็ตรูปแบบต่างๆ กับ
คุณสามารถดำเนินการดังกล่าวได้ด้วยแอตทริบิวต์ style
ในไฟล์เลย์เอาต์ ตัวอย่างเช่น ข้อความต่อไปนี้ใช้สไตล์ปุ่มแบบไม่มีขอบของไลบรารี
<Button style="@style/Widget.AppCompat.Button.Borderless" ... />
หากต้องการใช้สไตล์นี้กับปุ่มทั้งหมด คุณสามารถประกาศสไตล์นั้นในธีม
buttonStyle
ดังนี้
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="buttonStyle">@style/Widget.AppCompat.Button.Borderless</item> ... </style>
นอกจากนี้ คุณยังขยายสไตล์วิดเจ็ตได้เช่นเดียวกับการขยายสไตล์อื่นๆ แล้วนำไปใช้กับสไตล์วิดเจ็ตที่กำหนดเองในเลย์เอาต์หรือธีม
แหล่งข้อมูลเพิ่มเติม
ดูข้อมูลเพิ่มเติมเกี่ยวกับธีมและสไตล์ได้ที่แหล่งข้อมูลต่อไปนี้
บล็อกโพสต์
- การจัดสไตล์ Android: ธีมกับสไตล์
- การจัดรูปแบบ Android: แอตทริบิวต์ธีมทั่วไป
- การจัดสไตล์ Android: แนะนำให้ใช้แอตทริบิวต์ธีม