- ไวยากรณ์:
-
<supports-screens android:resizeable=["true"| "false"] android:smallScreens=["true" | "false"] android:normalScreens=["true" | "false"] android:largeScreens=["true" | "false"] android:xlargeScreens=["true" | "false"] android:anyDensity=["true" | "false"] android:requiresSmallestWidthDp="integer" android:compatibleWidthLimitDp="integer" android:largestWidthLimitDp="integer"/>
- ที่อยู่ใน:
<manifest>
- description:
ช่วยให้คุณระบุขนาดหน้าจอที่แอปพลิเคชันรองรับและเปิดใช้โหมดความเข้ากันได้ของหน้าจอสำหรับหน้าจอ ใหญ่กว่าที่แอปพลิเคชันของคุณรองรับ คุณจะต้องใช้องค์ประกอบนี้ใน แอปพลิเคชันเพื่อระบุขนาดหน้าจอที่แอปพลิเคชันรองรับ
หมายเหตุ: โหมดความเข้ากันได้ของหน้าจอไม่ใช่โหมด ที่คุณต้องการให้แอปพลิเคชันทำงาน ทำให้ UI ภาพแตกและเบลอ เนื่องจากการซูม วิธีที่เหมาะสมในการทำให้แอปพลิเคชันของคุณทำงานได้ดีบนหน้าจอขนาดใหญ่คือการปฏิบัติตาม ภาพรวมความเข้ากันได้ของหน้าจอและ เสนอเลย์เอาต์แบบต่างๆ สำหรับหน้าจอขนาดต่างๆ
แอปพลิเคชัน "รองรับ" หน้าจอขนาดใดขนาดหนึ่ง หากปรับขนาดอย่างเหมาะสมเพื่อแสดงเต็มหน้าจอ การปรับขนาดตามปกติที่ระบบใช้ได้ผลดีกับแอปพลิเคชันส่วนใหญ่ คุณจึงไม่ต้องดำเนินการใดๆ การทำให้แอปพลิเคชันของคุณทำงานได้บนหน้าจอที่มีขนาดใหญ่กว่าโทรศัพท์มือถือ
อย่างไรก็ตาม บ่อยครั้งที่คุณต้องเพิ่มประสิทธิภาพ UI ของแอปพลิเคชันสำหรับขนาดหน้าจอที่แตกต่างกันโดยให้ทางเลือก ทรัพยากรเลย์เอาต์ เช่น คุณอาจต้องการแก้ไขเลย์เอาต์ของกิจกรรม เมื่อทำงานบนแท็บเล็ต เมื่อเทียบกับการทำงานบนอุปกรณ์เคลื่อนที่
แต่หากแอปพลิเคชันของคุณทำงานได้ไม่ดีนักเมื่อปรับขนาดให้พอดีกับหน้าจอขนาดต่างๆ สามารถใช้แอตทริบิวต์ขององค์ประกอบ
<supports-screens>
เพื่อควบคุมว่าจะให้ ไปยังหน้าจอขนาดเล็ก หรือขยาย UI ให้ใหญ่ขึ้น หรือเป็นแบบ "ซูม" ให้พอดี หน้าจอขนาดใหญ่โดยใช้โหมดความเข้ากันได้ของหน้าจอของระบบหากคุณ ไม่ได้ออกแบบสำหรับหน้าจอขนาดใหญ่ และการปรับขนาดปกติไม่ได้เหมาะสม โหมดความเข้ากันได้ของหน้าจอจะปรับขนาด UI ของคุณโดยการจำลองขนาดปกติ และความหนาแน่นปานกลางด้วย จากนั้นจะซูมเข้าจนเต็มหน้าจอ โปรดทราบว่า ทำให้ UI เป็นภาพแตกและเบลอ ดังนั้นจะดีกว่าหากคุณปรับ UI ให้เป็นภาพขนาดใหญ่ หน้าจอ
หมายเหตุ: Android 3.2 แนะนำแอตทริบิวต์ใหม่ ได้แก่
android:requiresSmallestWidthDp
,android:compatibleWidthLimitDp
และandroid:largestWidthLimitDp
หากคุณกำลังพัฒนาแอปพลิเคชันสำหรับ Android 3.2 ขึ้นไป ใช้แอตทริบิวต์เหล่านี้เพื่อประกาศการรองรับขนาดหน้าจอแทนแอตทริบิวต์ โดยอิงตามขนาดหน้าจอทั่วไปเกี่ยวกับโหมดความเข้ากันได้ของหน้าจอ
โหมดความเข้ากันได้ของหน้าจอเป็นวิธีสุดท้ายสำหรับแอปที่ไม่ได้ออกแบบมาให้ใช้ จากขนาดหน้าจอที่ใหญ่กว่า นี่ไม่ใช่โหมดที่คุณต้องการให้แอปทํางานเพราะ สามารถเสนอ ผู้ใช้ได้รับประสบการณ์ที่ไม่ดี โหมดความเข้ากันได้ของหน้าจอมี 2 เวอร์ชันที่อิงตาม ในเวอร์ชันอุปกรณ์ที่แอปใช้
สำหรับ Android เวอร์ชัน 1.6 ถึง 3.1 ระบบจะเรียกใช้แอปพลิเคชันของคุณใน "ตราประทับไปรษณีย์" ทั้งนี้ จำลองหน้าจอขนาด 320dp x 480dp โดยมีขอบสีดำแบบเต็มพื้นที่ที่เหลือของหน้าจอ
บน Android 3.2 ขึ้นไป ระบบจะวาดเลย์เอาต์เช่นเดียวกับบนหน้าจอ 320dp x 480dp จากนั้น จะขยายขนาดให้เต็มหน้าจอ ปัญหานี้มักทำให้เกิดอาร์ติแฟกต์ เช่น การเบลอและการทำภาพแตกใน UI
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีรองรับหน้าจอขนาดต่างๆ อย่างเหมาะสมเพื่อหลีกเลี่ยง โดยใช้โหมดความเข้ากันได้ของหน้าจอกับแอปพลิเคชันของคุณ, อ่าน ภาพรวมความเข้ากันได้ของหน้าจอ
- ดังนี้
-
android:resizeable
- ระบุว่าแอปพลิเคชันปรับขนาดได้ไหมสำหรับหน้าจอขนาดต่างๆ แอตทริบิวต์นี้คือ
"true"
โดยค่าเริ่มต้น หากตั้งค่าเป็น"false"
ระบบจะเรียกใช้แอปพลิเคชันในโหมดความเข้ากันได้ของหน้าจอขนาดใหญ่ หน้าจอแอตทริบิวต์นี้เลิกใช้งานแล้ว เปิดตัวเพื่อช่วยแอปพลิเคชัน เปลี่ยนจาก Android 1.5 ไปเป็น 1.6 เมื่อมีการเปิดตัวการสนับสนุนหลายหน้าจอเป็นครั้งแรก โปรดอย่าใช้งาน
android:smallScreens
- ระบุว่าแอปพลิเคชันรองรับ "เล็ก" หรือไม่ รูปแบบของอุปกรณ์หน้าจอ
หน้าจอขนาดเล็กหมายถึงหน้าจอที่มีอัตราส่วนน้อยกว่า
"ปกติ" หรือหน้าจอ HVGA แบบดั้งเดิม แอปพลิเคชันที่ไม่
รองรับหน้าจอขนาดเล็กใช้งานไม่ได้สำหรับ
อุปกรณ์หน้าจอขนาดเล็กจากบริการภายนอก เช่น Google Play เนื่องจากมี
แพลตฟอร์มสามารถทำให้แอปพลิเคชันดังกล่าวทำงานได้บนหน้าจอขนาดเล็ก นี่คือ
"true"
โดย "ค่าเริ่มต้น" android:normalScreens
- ระบุว่าแอปพลิเคชันรองรับฟังก์ชัน "ปกติ" หรือไม่ หน้าจอ
ฟอร์มแฟกเตอร์ เดิมทีนี่คือ HVGA ความหนาแน่นปานกลาง
แต่ความหนาแน่นต่ำของ WQVGA และความหนาแน่นสูงของ WVGA ยัง
ถือเป็นเรื่องปกติ แอตทริบิวต์นี้คือ
"true"
โดยค่าเริ่มต้น android:largeScreens
- ระบุว่าแอปพลิเคชันรองรับ "ขนาดใหญ่" หรือไม่ รูปแบบของอุปกรณ์หน้าจอ
หน้าจอขนาดใหญ่หมายถึงหน้าจอที่มีขนาดใหญ่ขึ้นมาก
"ปกติ" หน้าจอโทรศัพท์ ดังนั้น อาจต้องมีการดูแลเป็นพิเศษ
เพื่อใช้แอปให้เกิดประโยชน์สูงสุด แม้ว่าอาจต้องใช้การปรับขนาดโดย
ให้เต็มหน้าจอ
ค่าเริ่มต้นของแต่ละเวอร์ชันจะแตกต่างกันไปตามเวอร์ชัน ดังนั้นควรจะดีกว่าหาก คุณต้องประกาศแอตทริบิวต์นี้อย่างชัดเจน โปรดระวังการตั้งค่าเป็น
"false"
โดยทั่วไปจะเปิดใช้หน้าจอ โหมดความเข้ากันได้ android:xlargeScreens
- ระบุว่าแอปพลิเคชันรองรับ "ขนาดใหญ่พิเศษ" หรือไม่ รูปแบบของอุปกรณ์หน้าจอ
หน้าจอขนาดใหญ่พิเศษหมายถึงหน้าจอที่มีขนาดใหญ่ขึ้นมาก
ใหญ่กว่า "ใหญ่" เช่น แท็บเล็ต หรือสิ่งที่ใหญ่กว่านี้ อาจต้องมีการดูแลเป็นพิเศษ
เพื่อใช้แอปให้เกิดประโยชน์สูงสุด แม้ว่าอาจต้องใช้การปรับขนาดโดย
ให้เต็มหน้าจอ
ค่าเริ่มต้นของแต่ละเวอร์ชันจะแตกต่างกันไปตามเวอร์ชัน ดังนั้นควรจะดีกว่าหาก คุณต้องประกาศแอตทริบิวต์นี้อย่างชัดเจน โปรดระวังการตั้งค่าเป็น
"false"
โดยทั่วไปจะเปิดใช้หน้าจอ โหมดความเข้ากันได้แอตทริบิวต์นี้เปิดตัวใน API ระดับ 9
android:anyDensity
- ระบุว่าแอปพลิเคชันมีทรัพยากรเพื่อรองรับหน้าจอทั้งหมดหรือไม่
ความหนาแน่น
สำหรับแอปพลิเคชันที่รองรับ Android 1.6 (API ระดับ 4) ขึ้นไป นี่คือ
"true"
โดยค่าเริ่มต้น อย่าตั้งค่าเป็น"false"
เว้นแต่จะแน่ใจแล้ว แอปพลิเคชันของคุณต้องใช้ในการทำงาน อาจต้องปิดใช้เพียงเท่านี้ คือกรณีที่แอปของคุณจัดการบิตแมปโดยตรง ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมความเข้ากันได้ของหน้าจอ android:requiresSmallestWidthDp
- ระบุ
smallestWidth
ขั้นต่ำที่จำเป็นสำหรับแอปsmallestWidth
เป็นขนาดที่สั้นที่สุดของ พื้นที่ว่างหน้าจอในdp
หน่วยที่ต้องพร้อมใช้งานสำหรับ UI ของแอปพลิเคชัน นั่นคือ ควรมีขนาด 2 มิติที่สั้นที่สุดเพื่อรับการพิจารณาอุปกรณ์
smallestWidth
ของอุปกรณ์ต้องมีค่าเท่ากับหรือมากกว่านี้ โดยปกติแล้ว ค่าที่คุณระบุสำหรับช่วงนี้คือ "ความกว้างที่เล็กที่สุด" ที่เลย์เอาต์รองรับ โดยไม่พิจารณาการวางแนวหน้าจอ ณ ขณะนั้นตัวอย่างเช่น หน้าจอโทรศัพท์มือถือทั่วไปมี
smallestWidth
ที่ 320 dp ส่วนแท็บเล็ตขนาด 7 นิ้วจะมีความละเอียดsmallestWidth
ของ 600dp และแท็บเล็ตขนาด 10 นิ้วมีsmallestWidth
ที่ 720dp โดยทั่วไปค่าเหล่านี้smallestWidth
เพราะเป็นขนาดที่สั้นที่สุดของพื้นที่ที่ใช้ได้ของหน้าจอขนาดที่ใช้เปรียบเทียบมูลค่าจะพิจารณาจากการตกแต่งหน้าจอและระบบ UI เช่น หากอุปกรณ์มีองค์ประกอบ UI แบบถาวรบางอย่างในจอแสดงผล ระบบจะประกาศ
smallestWidth
ของอุปกรณ์ที่เล็กกว่าขนาดหน้าจอจริงเพราะ พิกเซลหน้าจอไม่พร้อมใช้งานสำหรับ UI ของคุณหากแอปพลิเคชันปรับขนาดสำหรับหน้าจอขนาดเล็กให้เหมาะสม "เล็ก" หรือความกว้างขั้นต่ำ 320dp คุณไม่จำเป็นต้องใช้แอตทริบิวต์นี้ หรือไม่เช่นนั้น ให้ใช้ค่าสำหรับแอตทริบิวต์นี้ที่ ตรงกับค่าน้อยที่สุดที่แอปพลิเคชันของคุณใช้สำหรับ ตัวระบุความกว้างของหน้าจอที่เล็กที่สุด (
sw<N>dp
)ข้อควรระวัง: ระบบ Android ไม่สนใจเรื่องนี้ เพื่อไม่ให้กระทบต่อลักษณะการทำงานของแอปพลิเคชันขณะรันไทม์ แต่โมเดลนี้จะนำมาใช้ เพื่อเปิดใช้การกรองแอปพลิเคชันของคุณในบริการต่างๆ เช่น Google Play อย่างไรก็ตาม ขณะนี้ Google Play ยังไม่รองรับแอตทริบิวต์นี้สำหรับการกรองใน Android 3.2 ดังนั้นให้ใช้แอตทริบิวต์ขนาดอื่นๆ ต่อไปหากแอปพลิเคชันของคุณไม่รองรับ หน้าจอขนาดเล็ก
แอตทริบิวต์นี้เปิดตัวใน API ระดับ 13
android:compatibleWidthLimitDp
- แอตทริบิวต์นี้ให้คุณเปิดใช้โหมดความเข้ากันได้ของหน้าจอเป็น
คุณลักษณะที่ผู้ใช้สามารถเลือกได้ โดยการระบุ "ความกว้างของหน้าจอที่เล็กที่สุด" สูงสุด ที่แอปพลิเคชันของคุณ
ได้รับการออกแบบมาเป็นพิเศษ หากด้านที่เล็กที่สุดของหน้าจอที่พร้อมใช้งานของอุปกรณ์มีค่ามากกว่าค่าที่ระบุไว้ที่นี่
ผู้ใช้ยังคงติดตั้งแอปพลิเคชันของคุณได้ แต่จะได้รับการเสนอให้เรียกใช้ในโหมดความเข้ากันได้ของหน้าจอ
โดย โดยค่าเริ่มต้น โหมดความเข้ากันได้ของหน้าจอจะถูกปิด และระบบจะปรับขนาดเลย์เอาต์ให้พอดีกับหน้าจอ ตามปกติ ปุ่มจะพร้อมใช้งานในแถบระบบที่ช่วยให้ผู้ใช้สลับหน้าจอได้ โหมดความเข้ากันได้
หากแอปพลิเคชันของคุณใช้ได้กับหน้าจอทุกขนาดและเลย์เอาต์ปรับขนาดได้อย่างเหมาะสม คุณไม่ต้อง คุณต้องใช้แอตทริบิวต์นี้
หมายเหตุ: ขณะนี้โหมดความเข้ากันได้ของหน้าจอจะจำลองเฉพาะโทรศัพท์มือถือ หน้าจอที่มีความกว้าง 320dp ดังนั้นจะไม่มีการใช้โหมดความเข้ากันได้ของหน้าจอหากคุณตั้งค่าสำหรับ
android:compatibleWidthLimitDp
มีขนาดใหญ่กว่า320
แอตทริบิวต์นี้เปิดตัวใน API ระดับ 13
android:largestWidthLimitDp
- แอตทริบิวต์นี้ให้คุณบังคับให้เปิดใช้โหมดความเข้ากันได้ของหน้าจอโดยการระบุ
"ความกว้างของหน้าจอที่เล็กที่สุด" สูงสุด ตามการออกแบบแอปพลิเคชันของคุณ ถ้าด้านที่เล็กที่สุดของ
หน้าจอที่พร้อมใช้งานของอุปกรณ์มีค่ามากกว่าค่าของคุณ แอปพลิเคชันจะทำงานในหน้าจอ
โหมดความเข้ากันได้ โดยไม่มีวิธีให้ผู้ใช้ปิดใช้
หากแอปพลิเคชันของคุณใช้ได้กับหน้าจอทุกขนาดและเลย์เอาต์ปรับขนาดได้อย่างเหมาะสม คุณไม่ต้อง คุณต้องใช้แอตทริบิวต์นี้ ไม่เช่นนั้น ให้ลองใช้แอตทริบิวต์
android:compatibleWidthLimitDp
ก่อน ใช้เมนู แอตทริบิวต์android:largestWidthLimitDp
เฉพาะเมื่อแอปพลิเคชันใช้งานไม่ได้เมื่อ ปรับขนาดเพื่อหน้าจอขนาดใหญ่ขึ้น และโหมดความเข้ากันได้ของหน้าจอเป็นวิธีเดียวที่สามารถใช้แอปพลิเคชันของคุณได้หมายเหตุ: ขณะนี้โหมดความเข้ากันได้ของหน้าจอจะจำลองเฉพาะโทรศัพท์มือถือ หน้าจอที่มีความกว้าง 320dp ดังนั้นจะไม่มีการใช้โหมดความเข้ากันได้ของหน้าจอหากคุณตั้งค่าสำหรับ
android:largestWidthLimitDp
มีขนาดใหญ่กว่า320
แอตทริบิวต์นี้เปิดตัวใน API ระดับ 13
- เปิดตัวใน
- API ระดับ 4
- ดูเพิ่มเติม
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2024-08-22 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2024-08-22 UTC"],[],[]]