ทรัพยากรของแอป เช่น บิตแมปและเลย์เอาต์ จะได้รับการจัดระเบียบตามประเภทที่เจาะจง
ไดเรกทอรีภายในไดเรกทอรี res/
ของแต่ละโมดูล คุณยังเพิ่มทางเลือก
ของแต่ละไฟล์ ซึ่งมีการปรับให้เหมาะสมกับอุปกรณ์
เช่น บิตแมปเวอร์ชันความละเอียดสูงสำหรับความหนาแน่นสูง
หน้าจอ
Android Studio ช่วยให้คุณเพิ่มทรัพยากรใหม่ๆ และทรัพยากรทางเลือกในหลายๆ ด้าน ทั้งนี้ขึ้นอยู่กับประเภทของทรัพยากรที่คุณต้องการเพิ่ม หน้านี้อธิบายวิธีการ ในการเพิ่มไฟล์ทรัพยากรพื้นฐาน วิธีเปลี่ยนตำแหน่งของทรัพยากร และ วิธีการทำงานของการรวมทรัพยากร
ดูหน้าต่อไปนี้สำหรับรายละเอียดเกี่ยวกับวิธีสร้าง ประเภททรัพยากรที่เฉพาะเจาะจง
- หากต้องการเพิ่มไฟล์การออกแบบ โปรดดูสร้าง UI ด้วยเครื่องมือแก้ไขการออกแบบ
- หากต้องการเพิ่มไฟล์สตริง โปรดดูแปล UI ด้วยตัวแก้ไขการแปล
- หากต้องการเพิ่มบิตแมป โปรดดูหัวข้อสร้างไอคอนแอปด้วย Image Asset Studio
- หากต้องการเพิ่มไฟล์ SVG โปรดดูเพิ่มกราฟิกเวกเตอร์ที่มีความหนาแน่นหลากหลาย
สำหรับข้อมูลเกี่ยวกับวิธีอ้างอิงทรัพยากรจากแอป ดูที่โค้ด ภาพรวมแหล่งข้อมูลของแอป
เพิ่มไฟล์ทรัพยากร XML
แม้ว่าลิงก์ของหน้าเว็บก่อนหน้านี้จะอธิบายเวิร์กโฟลว์ที่ปรับแต่งให้เหมาะกับแต่ละ ของประเภททรัพยากร คุณสามารถเพิ่มไฟล์ทรัพยากร XML ได้โดยทำตามขั้นตอนต่อไปนี้ ขั้นตอน:
คลิกโมดูลแอปเป้าหมายในหน้าต่างโครงการใน มุมมอง Android หรือโปรเจ็กต์
- เลือก ไฟล์ > ใหม่ > ไฟล์ทรัพยากร Android
- กรอกรายละเอียดในกล่องโต้ตอบดังนี้
- ชื่อไฟล์: ป้อนชื่อสำหรับไฟล์ XML (ไม่จำเป็นต้องใส่
.xml
) - ประเภททรัพยากร: เลือกประเภทของทรัพยากรที่ต้องการสร้าง
- องค์ประกอบรูท: หากมี ให้เลือกองค์ประกอบ XML รูทสำหรับ ทรัพยากรบางประเภทรองรับองค์ประกอบรูทเพียงประเภทเดียว แล้วแต่กรณี ในประเภททรัพยากรที่เลือก คุณอาจแก้ไขไม่ได้
- ชุดแหล่งที่มา: เลือกชุดแหล่งที่มาที่คุณต้องการบันทึกไฟล์
- ชื่อไดเรกทอรี: ต้องตั้งชื่อไดเรกทอรีในลักษณะที่เจาะจง สำหรับประเภททรัพยากรและตัวระบุการกำหนดค่า อย่าแก้ไขข้อมูลนี้ ยกเว้น คุณต้องการเพิ่มตัวระบุการกำหนดค่าลงใน ชื่อไดเรกทอรีด้วยตนเอง (ใช้ตัวระบุที่ใช้ได้แทน)
- ตัวระบุที่ใช้ได้: แทนที่จะรวมตัวระบุการกำหนดค่าด้วยตนเอง ในชื่อไดเรกทอรี คุณสามารถเพิ่มตัวระบุดังกล่าวได้โดยเลือกตัวระบุจาก แล้วคลิกเพิ่ม
- ชื่อไฟล์: ป้อนชื่อสำหรับไฟล์ XML (ไม่จำเป็นต้องใส่
- เมื่อเพิ่มตัวระบุทั้งหมดที่ต้องการแล้ว ให้คลิกตกลง
เคล็ดลับ: หากต้องการเปิดกล่องโต้ตอบไฟล์ทรัพยากรใหม่เวอร์ชันแบบง่าย เฉพาะประเภททรัพยากรที่คุณต้องการเพิ่ม คลิกขวาที่ ไดเรกทอรีทรัพยากรภายในโฟลเดอร์ res และเลือก ใหม่ > ไฟล์ทรัพยากร type-name
ทรัพยากร XML ที่ซับซ้อนแบบในหน้า
ทรัพยากรที่ซับซ้อนบางอย่างต้องใช้ไฟล์ทรัพยากร XML หลายไฟล์ ตัวอย่างเช่น เวกเตอร์ที่เคลื่อนไหวได้ Drawable มีวัตถุที่วาดได้แบบเวกเตอร์และวัตถุที่เคลื่อนไหวได้ และต้องใช้ไฟล์ XML อย่างน้อย 3 ไฟล์
ในตัวอย่างนี้ คุณสามารถสร้างและเก็บไฟล์ XML ทั้ง 3 ไฟล์แยกกันได้หากต้องการใช้ไฟล์ต่อไปนี้อย่างน้อย 1 ไฟล์ ให้พวกเขา แต่ถ้ามีการใช้ไฟล์ XML สำหรับเวกเตอร์ที่เคลื่อนไหวได้นี้เท่านั้น คุณสามารถใช้รูปแบบทรัพยากรแบบอินไลน์ที่ให้ไว้ในเนื้อหา Android แทนได้ เครื่องมือบรรจุภัณฑ์ (AAPT) เมื่อใช้ AAPT คุณจะกำหนดทรัพยากรทั้ง 3 รายการใน XML เดียวได้ ดูข้อมูลเพิ่มเติมที่ XML ที่ซับซ้อนแบบแทรกในบรรทัด ทรัพยากร
เพิ่มไดเรกทอรีทรัพยากร
หากต้องการเพิ่มไดเรกทอรีทรัพยากรใหม่ ให้ทำตามขั้นตอนต่อไปนี้
คลิกโมดูลแอปเป้าหมายในหน้าต่างโปรเจ็กต์
- เลือก ไฟล์ > ใหม่ > ไดเรกทอรีทรัพยากร Android
- กรอกรายละเอียดในกล่องโต้ตอบดังนี้
- ชื่อไดเรกทอรี: ต้องตั้งชื่อไดเรกทอรีในลักษณะที่เจาะจง เป็นประเภททรัพยากรและชุดค่าผสมของตัวระบุการกำหนดค่า สิ่งที่ไม่ควรทำ แก้ไขรายการนี้ ยกเว้นกรณีที่คุณต้องการเพิ่มตัวระบุการกำหนดค่าลงใน ชื่อไดเรกทอรีด้วยตนเอง (ใช้ตัวระบุที่ใช้ได้แทน)
- ประเภททรัพยากร: เลือกประเภทของทรัพยากรที่ต้องการเก็บในไดเรกทอรี
- ชุดแหล่งที่มา: เลือกชุดแหล่งที่มาที่คุณต้องการไดเรกทอรี
- ตัวระบุที่ใช้ได้: แทนที่จะรวมตัวระบุการกำหนดค่าด้วยตนเอง ในชื่อไดเรกทอรี คุณสามารถเพิ่มตัวระบุดังกล่าวได้โดยเลือกตัวระบุจาก แล้วคลิกเพิ่ม
- เมื่อเพิ่มตัวระบุทั้งหมดที่ต้องการแล้ว ให้คลิกตกลง
เปลี่ยนไดเรกทอรีทรัพยากร
โดยค่าเริ่มต้น ทรัพยากรของคุณจะอยู่ใน
module-name/src/source-set-name/res/
ตัวอย่างเช่น ทรัพยากรสำหรับชุดแหล่งที่มาหลักของโมดูลอยู่ในภาษา src/main/res/
และทรัพยากรสำหรับชุดแหล่งที่มาของการแก้ไขข้อบกพร่องอยู่ใน src/debug/res/
แต่คุณสามารถเปลี่ยนเส้นทางเหล่านี้ไปยังเส้นทางอื่นๆ ได้
สถานที่ตั้ง (สัมพันธ์กับไฟล์ build.gradle
) ที่มีพร็อพเพอร์ตี้ res.srcDirs
ในบล็อก sourceSets
เช่น
ดึงดูด
android { sourceSets { main { res.srcDirs = ['resources/main'] } debug { res.srcDirs = ['resources/debug'] } } }
Kotlin
android { sourceSets { getByName("main") { res.srcDirs("resources/main") } getByName("debug") { res.srcDirs("resources/debug") } } }
นอกจากนี้คุณยังระบุไดเรกทอรีทรัพยากรหลายรายการสำหรับชุดแหล่งที่มาเดียวได้ เครื่องมือในการสร้างสรรค์จะผสานสิ่งเหล่านั้นเข้าด้วยกัน เช่น
ดึงดูด
android { sourceSets { main { res.srcDirs = ['res1', 'res2'] } } }
Kotlin
android { sourceSets { main { res.srcDirs("res1", "res2") } } }
สำหรับข้อมูลเพิ่มเติม โปรดอ่านเกี่ยวกับ ชุดแหล่งที่มา
การรวมทรัพยากร
ทรัพยากรในไฟล์แอปขั้นสุดท้ายอาจมาจากแหล่งที่มา 3 แหล่ง ได้แก่
- ชุดแหล่งที่มาหลัก (โดยทั่วไปจะอยู่ใน
src/main/res/
) - ชุดแหล่งที่มาของตัวแปร
- ไลบรารี Android (AAR)
เมื่อทรัพยากรทั้งหมดจากชุดแหล่งที่มาหรือไลบรารีแต่ละรายการไม่ซ้ำกัน ลงในแอปสุดท้าย จะถือว่าทรัพยากรไม่ซ้ำกันหากชื่อไฟล์คือ ไม่ซ้ำกันภายใน ไดเรกทอรีประเภททรัพยากร และ ตัวระบุทรัพยากร (หากกำหนดไว้)
หากมีเวอร์ชันที่ตรงกัน 2 เวอร์ชันขึ้นไปของทรัพยากรเดียวกัน จะมีเพียงเวอร์ชันเดียวรวมอยู่ในแอปสุดท้าย เลือกเครื่องมือสร้าง เวอร์ชันที่ควรเก็บไว้ตามลำดับ ลำดับความสำคัญต่อไปนี้ (ลำดับความสำคัญสูงสุด ทางซ้าย):
ตัวแปรบิลด์ > ประเภทบิลด์ > รสชาติของผลิตภัณฑ์ > ชุดแหล่งที่มาหลัก > ทรัพยากร Dependency ของไลบรารี
ตัวอย่างเช่น หากชุดแหล่งที่มาหลักประกอบด้วย
res/layout/example.xml
res/layout-land/example.xml
และประเภทบิลด์การแก้ไขข้อบกพร่องประกอบด้วย
res/layout/example.xml
จากนั้นแอปสุดท้ายจะรวม res/layout/example.xml
จากประเภทบิลด์การแก้ไขข้อบกพร่องและ
res/layout-land/example.xml
จากชุดแหล่งที่มาหลัก
แต่หากการกำหนดค่าบิลด์ระบุ โฟลเดอร์ทรัพยากรหลายโฟลเดอร์สำหรับ ชุดแหล่งที่มาหนึ่งๆ และมีความขัดแย้งระหว่างแหล่งที่มาเหล่านั้น ซึ่งถือเป็นข้อผิดพลาด เกิดขึ้นและการรวมล้มเหลวเนื่องจากไดเรกทอรีทรัพยากรแต่ละรายการมีเหมือนกัน ลำดับความสำคัญ