סקירה כללית על תאימות המסך

מערכת Android פועלת במגוון מכשירים עם מסכים בגדלים שונים ודחיסות פיקסלים שונות. המערכת מבצעת שינוי גודל בסיסי כדי להתאים את ממשק המשתמש למסכים שונים, אבל יש דרכים שיעזרו לממשק המשתמש להתאים טוב יותר לכל סוג מסך.

איור 1. מערכת Android פועלת במכשירים שונים עם מסכים ודחיסות פיקסלים שונים.

בדף הזה נספק סקירה כללית על התכונות הזמינות ב-Android שיעזרו לכם להתאים את האפליקציה בהתאם. להוראות ספציפיות יותר לגבי פיתוח האפליקציה לוריאציות שונות של מסכים, אפשר לעיין במסמכים הבאים:

גדלי מסכים

גודל המסך הוא המרחב הגלוי של ממשק המשתמש של האפליקציה. גודל המסך, כפי שהוא מזוהה על ידי האפליקציה, הוא לא הגודל בפועל של מסך המכשיר. האפליקציות צריכות להביא בחשבון את כיוון המסך, את רכיבי העיצוב של המערכת – כמו סרגל הניווט – ואת השינויים בהגדרות החלון, למשל כשהמשתמש מפעיל את מצב חלונות מרובים.

פריסות גמישות

כברירת מחדל, מערכת Android משנה את הגודל של פריסת האפליקציה כך שתתאים למסך הנוכחי. כדי שהפריסה תתאים לגודל המסך גם אם יש בו שינויים קטנים, כדאי להטמיע אותה בצורה גמישה. אל תגדירו באופן קבוע את המיקום והגודל של רכיבי ממשק המשתמש. במקום זאת, כדאי לאפשר לגודלי התצוגה להתמתח ולציין את מיקומי התצוגות ביחס לתצוגת ההורה או לתצוגות אחיות אחרות, כדי שהסדר והגדלים היחסיים יישארו זהים כשהפריסה תתרחב.

מידע נוסף על פריסות גמישות זמין במאמר עיצוב רספונסיבי.

פריסות חלופיות

חשוב ליצור פריסה גמישה, אבל צריך גם לעצב פריסות שונות שמאפשרות לכם לבצע אופטימיזציה של חוויית המשתמש בהתאם למרחב הזמין במכשירים שונים. ב-Android אפשר לספק קובצי פריסה חלופיים שהמערכת מחילה במהלך זמן הריצה על סמך גודל המסך הנוכחי של המכשיר.

איור 2. אותה אפליקציה משתמשת בפריסה שונה לגדלים שונים של מסכים.

במאמר עיצוב רספונסיבי מוסבר איך יוצרים פריסות חלופיות.

תמונות שניתן למתוח

מכיוון שהפריסה צריכה להתמתח כך שתתאים למסך הנוכחי, כך גם קובצי ה-bitmap שמצרפים לכל אחת מתצוגות הפריסה. עם זאת, מתיחה של קובץ בייטמאפ רגיל בכיוונים שרירותיים עלולה לגרום לתמונות מעוותות ולעיוותים מוזרים של התמונה.

כדי לפתור את הבעיה, מערכת Android תומכת בתמונות ‎bitmap בפורמט nine-patch, שבהן מציינים אזורים קטנים של פיקסלים שניתן למתוח, בעוד ששאר התמונה לא משתנה.

מידע נוסף על קובצי bitmap של תשע תיקיות זמין במאמר NinePatch drawables.

צפיפות פיקסלים

צפיפות הפיקסלים היא מספר הפיקסלים בשטח פיזי של המסך. נקרא DPI (נקודות לאינץ'). הערך הזה שונה מרזולוציית המסך, שהיא המספר הכולל של פיקסלים במסך.

איור 3. ייצוג מוגזם של שני מכשירים באותו גודל, אבל עם דחיסות פיקסלים שונות.

עצמאות מדחיסות

האפליקציה 'לא תלויה בדחיסות' כשהיא שומרת על הגודל הפיזי של עיצוב ממשק המשתמש – מנקודת המבט של המשתמש – כשהיא מוצגת במסכים עם רמות שונות של צפיפות פיקסלים, כפי שמוצג באיור 3. חשוב לשמור על עצמאות מהצפיפות, כי בלי זה, רכיב בממשק המשתמש כמו לחצן עשוי להיראות גדול יותר במסך עם צפיפות נמוכה וקטן יותר במסך עם צפיפות גבוהה.

מערכת Android עוזרת לכם להגיע לעצמאות מדחיסות על ידי מתן פיקסלים שאינם תלויים בדחיסות (dp או dip) כיחידת מידה שאפשר להשתמש בה במקום בפיקסלים (px).

מידע נוסף על פיקסלים שלא תלויים בדחיסות זמין במאמר שימוש בפיקסלים שלא תלויים בדחיסות.

מפות סיביות חלופיות

כדי שהתמונות ייראו במיטבן בכל המסכים, כדאי לספק קובצי bitmap חלופיים שתואמים לכל דחיסות מסך. אם האפליקציה מספקת קובצי bitmap רק למסכים עם צפיפות נמוכה יותר, מערכת Android תגדיל אותם כשהם מוצגים במסך עם צפיפות גבוהה, כדי שהתמונות יתפסו את אותו מקום פיזי במסך. כתוצאה מכך, יכולים להופיע בתמונות ה-bitmap פגמים גלויים שנובעים מהשינוי בגודל. לכן, האפליקציה צריכה לכלול קובצי bitmap חלופיים ברזולוציה גבוהה יותר.

במאמר איך מספקים קובצי bitmap חלופיים מוסבר איך מספקים קובצי bitmap חלופיים.

גרפיקה וקטורית

לגבי סוגים פשוטים של תמונות, כמו סמלים, אפשר להימנע משיוך תמונות נפרדות לכל צפיפות באמצעות גרפיקה וקטורית. בגרפיקה וקטורית, האיור מוגדר באמצעות נתיבים גיאומטרים של קווים במקום פיקסלים, ולכן אפשר לצייר אותו בכל גודל בלי בעיות שקשורות לשינוי קנה המידה.

מידע נוסף על שימוש בגרפיקה וקטורית זמין במאמר עדיפות לגרפיקה וקטורית.

Wear OS,‏ TV,‏ Cars ו-ChromeOS

ההמלצות הקודמות רלוונטיות לכל גורמי הצורה של Android, אבל אם רוצים לפתח אפליקציה למכשירי Wear OS,‏ Android TV,‏ Android Auto,‏ Android Automotive OS או ChromeOS, צריך לבצע עוד עבודה.

לכל אחד מסוגי המכשירים האלה יש מודל משלו של אינטראקציה עם משתמשים, והאפליקציה שלכם צריכה להתאים למודלים האלה. במקרים מסוימים, כמו Wear OS, צריך לחשוב מחדש על חוויית המשתמש של האפליקציה וליצור אפליקציה שמותאמת במיוחד למכשיר הזה. לעומת זאת, כדי לתמוך במכשירי ChromeOS, כמו Google Pixelbook, יכול להיות שתצטרכו לבצע רק שינויים קלים באפליקציה הקיימת כדי לתמוך באינטראקציה עם מקלדת או עכבר ובמסך גדול יותר.

כדי לתמוך במכשירים האלה, אפשר להיעזר במסמכים הבאים:

מכשירים מתקפלים

בדרך כלל, במכשירים מתקפלים יש כמה מסכים, ומסכים שונים – או שילובים של מסכים – הופכים לפעילים במצבים שונים של קיפול המכשיר. כדי שהאפליקציה תתאים את עצמה לשינויים בהגדרות, עליכם לפעול לפי ההנחיות במסמך הזה. עם זאת, בהגדרות מסוימות יכולים להיות יחסי גובה-רוחב לא רגילים, לכן כדאי לבדוק את התנהגות האפליקציה במגוון מכשירים.

איור 4. קיפול ופתיחה.

בדרך כלל, אפליקציה שפועלת היטב במצב חלונות מרובים בגדלים שונים של חלונות פועלת היטב גם במכשירים מתקפלים.

מידע נוסף על פיתוח אפליקציות למכשירים מתקפלים זמין במאמר מידע על מכשירי foldable.