support multiple screen

สรุปการออกแบบ Android Application ให้น่ามอง
แม้จะถูกติดตั้งบนมือถือที่มี screen sizes,densities ต่างกัน

โดยปกติ หลายๆคนอาจจะใช้ match_parent เพื่อยืด Widgets ใน layout
ให้ fit กับขนาดของ Devices ซึ่งไม่เหมาะสมเท่าไหร่
...สิ่งที่เราจะทำเพื่อให้ประสบการณ์การใช้งาน App ที่ดีที่สุดไม่ว่าจะอยู่บน Devices ประเภทไหนก็ตาม



วิธีแรก) Screen Size Groups



หรืออาจจะเรียกว่า Size Qualifiers ใช้ได้ใน Android1.6(API 4) or higher
จะกำหนดขนาดของ layout แบ่งเป็น group ตาม screen size ดังนี้

- normal screen size
- large screen size
- extra-large screen size
- extra-large in landscape orientation

ที่สำคญคือ "allows the runtime to automatically
select the appropriate resource based on the current device’s configuration"






วิธีที่ 2) Smallest-width Qualifier

Android 3.2 and greater



res/layout/main_activity.xml                    # For handsets
res/layout-sw600dp/main_activity.xml    # For tablets for at least 600 dp (>600dp)


เป็นวิธีการแบบเรียบง่าย โดยการแยกเป็น 2 Group
handset-style UI (single pane) , tablet-style UI (multiple panes)


หรืออาจจะทำมากกว่านี้
  • sw<N>dp   -  smallestWidth  จะไม่เปลี่ยนแปลงเมื่อ orientation changes
  • w<N>dp     - Available screen width
  • h<N>dp      - Available screen height ไม่นิยมระบุ

Examples:
sw320dp
sw600dp
sw720dp
etc.


ความแตกต่างของ sw<N>dp  กับ w<N>dp 
sw - You may also think of it as the "smallest possible width" for the screen.
w  -  This is the key factor in determining whether to use a one-pane layout for handsets or multi-pane layout for tablets.


ขนาดที่ควรจะใช้สำหรับขนาดหน้าจอที่พบบ่อย

320 - for devices with screen configurations such as :
240x320 ldpi - (QVGA handset)
320x480 mdpi - (handset)
480x800 hdpi - (high-density handset)

480 - for screens such as 480x800 mdpi (tablet/handset)
600 - for screens such as 600x1024 mdpi (7" tablet)
720 - for screens such as 720x1280 mdpi (10" tablet)


ไม่มีความคิดเห็น:

แสดงความคิดเห็น