การออกแบบ Material You เปิดตัวพร้อมกับรุ่น Android 12 และขยายการให้บริการใน Android 13
หน้านี้เน้นที่การอัปเดตตรรกะ Material You เพื่อช่วยให้คุณผสานรวมกับการสนับสนุนสีแบบไดนามิกที่สมบูรณ์ยิ่งขึ้น
ชุดสีโทนสีแบบไดนามิก
ตั้งแต่ Android 12 เป็นต้นไป ระบบจะรองรับชุดสีแบบไดนามิกต่อไปนี้
โดยแต่ละชุดประกอบด้วยสี 13 สีที่มีค่าความสว่างที่หลากหลายตามที่อธิบายไว้ที่ R.color
แต่ไม่มีค่าสีและค่าความเข้มที่ระบบ Android สามารถสร้างแบบไดนามิกได้เมื่อรันไทม์
สไตล์ธีมสำหรับสีแบบไดนามิก
ตั้งแต่ Android 13 เป็นต้นไป ระบบจะรองรับธีม 6 สไตล์ที่แตกต่างกันด้วยอัลกอริทึมสีแบบไดนามิกที่หลากหลาย ซึ่งจะยังคงตอบสนองความต้องการของนักพัฒนาแอปและตรงกับความต้องการของผู้ใช้ รายการต่อไปนี้แสดงเพื่อสร้างสีแบบไดนามิก 65 สีที่แอปใช้
TONAL_SPOT
เป็นชุดสีที่มีความสว่างปานกลางซึ่งใช้สีsystem_accent3_0
ที่คล้ายกับสีsystem_accent1_0
(นำมาจากรุ่น Android 12 และปรับเล็กน้อย)VIBRANT
เป็นชุดสีที่สดใสซึ่งผสมผสานการเปลี่ยนสีเล็กน้อยอย่างกลมกลืนEXPRESSIVE
เป็นชุดสีที่สดใสซึ่งจับคู่สีไฮไลต์ที่แปลกใหม่และคาดไม่ถึงเข้าด้วยกันSPRITZ
เป็นชุดสีที่มีสีสันไม่ฉูดฉายซึ่งสร้างสีสันที่นุ่มนวลระหว่างสีต่างๆRAINBOW
ใช้ทั้งสีสันและพื้นผิวที่เป็นกลางเพื่อสร้างประสบการณ์สีที่ละเอียดยิ่งขึ้นให้แก่ผู้ใช้- ไม่แนะนำให้ใช้กับดึงสีจากวอลเปเปอร์ แต่ควรใช้กับธีมสีแบบคงที่แทน
FRUIT_SALAD
มีสี 2 โทนเพื่อให้ผู้ใช้แสดงออกได้มากขึ้น- ไม่แนะนำให้ใช้กับดึงสีจากวอลเปเปอร์ แต่ควรใช้กับธีมสีแบบคงที่แทน
ธีมของระบบจะกำหนดโดยการตั้งค่าเดียวกันกับใน Android 12 ซึ่งก็คือ Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES
สำหรับ Android 13 จะใช้คีย์เพียง 1 รายการใน JSON ที่ส่งสีต้นทางเพื่อสร้างชุดสี 65 สี
{
"android.theme.customization.system_palette":"746BC1"
}
สไตล์ธีมเริ่มต้นคือ TONAL_SPOT
แต่คุณเลือกระบุสไตล์ธีมอื่นได้โดยใช้คีย์เพิ่มเติมใน JSON ด้านบน ดังนี้
{
"android.theme.customization.system_palette":"746BC1"
"android.theme.customization.theme_style":"EXPRESSIVE"
}
การผสานรวมสีแบบเปลี่ยนอัตโนมัติ
ดูหลักเกณฑ์เกี่ยวกับการผสานรวมสีแบบไดนามิกได้ที่การผสานรวมการออกแบบ Material You
คำถามที่พบบ่อย
API จานสีแบบไดนามิกมีข้อมูลอะไรบ้าง
แพลตตินั่มโทนสีมี 5 รูปแบบ ได้แก่
แต่ละชุดสีโทนจะมีค่าสี 13 ค่าที่ลงท้ายด้วยดัชนี 0, 10, 50, 100, 200, 300, 400, 500, 600, 700, 800, 900 และ 1000
API ที่ได้จะรวมชื่อของโทนสีไว้ด้วยกัน โดยลงท้ายด้วย index เช่น
R.color#system_accent1_10
พาเลตโทนสีแบบไดนามิกสร้างขึ้นอย่างไร
ต้องสร้างชุดสีแบบไดนามิกจากสีต้นทางสีเดียวที่ควรมาจากวอลเปเปอร์โดยใช้ com.android.systemui.monet.ColorScheme#getSeedColors
ซึ่งจะให้สีต้นทางที่ถูกต้องหลายสี หากสีที่ระบุไม่เป็นไปตามข้อกำหนดของสีต้นทาง สีต้นทางสีเดียวควรใช้ค่า 0xFF1B6EF3