רשתות ויחידות

פיקסלים שלא תלויים בדחיסות (dp) ופיקסלים שניתן לשנות (sp) הם חיוניים לבניית פריסות ולהצגת גופנים שמגיבים באופן אחיד למגוון הרחב של דחיסויות מסך, גדלים, גורמי צורה ויחסי גובה-רוחב שמרכיבים את מכשירי Android.

חטיפות דסקית

  • אם משתמשים ברשת בסיסית, כדאי להשתמש במידות 4 ו-8.
  • להשתמש ב-dp וב-sp במקום בפיקסלים כדי לציין את המפרטים.
  • ייצוא של גרפיקה מסוג bitmap/raster לכל המאגרים.
  • חשוב לתכנן את האפליקציה כך שתהיה רספונסיבית, תוך התחשבות בסוגים שונים של גדלים, רזולוציות ויחסי גובה-רוחב.
  • פיקסלים שלא תלויים בדחיסות (dp): פיקסלים שלא תלויים בדחיסות הם יחידות גמישות שניתנות להגדלה כדי שיהיו להן ממדים אחידים בכל מסך. הם מבוססים על הצפיפות הפיזית של המסך. היחידות האלה הן יחסיות למסך של 160 dpi (נקודות לאינץ'), שבו 1 dp שווה בערך ל-1 px.
  • פיקסלים שניתן לשנות (sp): פיקסלים שניתן לשנות משמשים לאותה מטרה כמו dp, אבל לגופנים. ערך ברירת המחדל של sp זהה לערך ברירת המחדל של dp. מערכת Android מחשבת את גודל הגופן בפועל שבו יש להשתמש על סמך המכשיר וההעדפה של המשתמש שהוגדרה באפליקציית ההגדרות במכשיר Android.
איור 1: סימון dp לעומת sp

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

מערכת Android משתמשת ביחידות האלה כדי לשנות את הגודל ולתרגם את הטווח של המכשירים והרזולוציות.

קטגוריות של צפיפות

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

מערכת Android מקבצת טווחים של רמות דחיסות מסך ל'דליים' ומשתמשת בהם כדי לספק למכשיר את קבוצת הנכסים האופטימלית. הדליים הנפוצים ביותר הם mdpi, hdpi, xhdpi, xxhdpi ו-xxxhdpi (nodpi ו-anydpi מתייחסים לדלי שלא משתנה בהתאם לרזולוציית המכשיר, בדרך כלל משמש לציור וקטורי). כל אחד מהם תואם לקובץ משאבים באפליקציה.

ל-mdpi יש צפיפות של x1, ל-hdpi יש צפיפות של x1.5,
            ל-xhdpi יש צפיפות של x2, ל-xxhdpi יש צפיפות של x3, ול-xxxhdpi יש צפיפות של x4
איור 2: קנטלופ חתוך למסיבה בצפיפויות המתאימות

כדי לחשב את dp:

‫dp = (width in pixels * 160) / screen density

רשתות

רשת בסיסית

שימוש ברשת בסיסית עוזר ליצור ריווח והתאמה עקביים בממשק המשתמש. ממשק המשתמש של Android משתמש ברשת של 8dp לפריסה, לרכיבים ולריווח.

סרטון 1: מוצגת רשת של 8 נקודות לאינץ' שמבליטה מרווחים של 8 נקודות לאינץ'

רכיבים קטנים יותר כמו סמלים, סוגים וחלק מהרכיבים בתוך רכיבים, מומלץ ליישר לרשת של 4dp.

איור 3: רשתות של 8dp מתאימות לרוב רכיבי ממשק המשתמש, ואילו רשת של 4dp מתאימה יותר לרכיבים קטנים כמו סמלים

רשת עמודות

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

איור 4: רשת עם ארבע עמודות

במאמר בנושא פריסות קנוניות של Material 3 מוסבר איך ליצור פריסות גמישות במגוון גורמי צורה.

סיווג גודל

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

יחסי גובה-רוחב

יחס גובה-רוחב הוא היחס בין רוחב הרכיב לגובה שלו. יחסי גובה-רוחב נכתבים כרוחב:גובה.

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

יחסי הגובה-רוחב המומלצים לשימוש בממשק המשתמש:

  • 16:9
  • ‎3:2
  • 4:3
  • 1:1
  • 3:4
  • 2:3