<supports-ขนาดหน้าจอ>

ไวยากรณ์:
<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
ดูเพิ่มเติม