PracticU

Display Metrics

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

Display Metrics
מחלקת DisplayMetrics מאפשרת לשאול את המכשיר בזמן ריצה מה הרזולוציה והדחיסות שלו. בשיעור בונים לחצן שמציג את הנתונים האלה בטקסט.
השלבים העיקריים
1. הכנת המסך: מוסיפים לחצן עם הטקסט show metrics info, textAllCaps כבוי ו-textSize של 20sp, ו-TextView עם ID בשם textViewMetricsInfo. את הפונקציה של ה-onClick יוצרים עם Alt+Enter.
2. איתור הרכיב: מגדירים data member ל-TextView ומאתרים אותו עם findViewById.
3. קבלת האובייקט: קוראים ל-getResources() כדי לקבל את משאבי המכשיר, ופותחים אובייקט DisplayMetrics מתוך getDisplayMetrics().
4. קריאת הנתונים: בונים מחרוזת שמכילה את השדות הבאים.
שדות שנקראים
- densityDpi - הדחיסות הכללית בנקודות לאינץ'.
- xdpi ו-ydpi - הדחיסות בציר X ובציר Y. בדרך כלל הן זהות, אבל לא תמיד.
- density - ה-DP factor, כמה פיקסלים שווים ל-dp אחד. למשל 2 כשהדחיסות 320.
- scaledDensity - ה-SP factor, כמו ה-DP factor בתוספת התאמה לגודל הגופן.
- widthPixels ו-heightPixels - הרזולוציה בפיקסלים.
תוצאות
במכשיר האמיתי: 160 DPI בשני הצירים, DP factor של 1, SP factor של 1.25, רוחב 600 וגובה 976 פיקסלים. באמולטור: 480 DPI, DP factor של 3, SP factor זהה, רוחב 1080 וגובה 1776.
שימו לב
בהרצה הראשונה הייתה שגיאה כי שם ה-TextView נכתב לא נכון. תיקנו אותו ל-textViewMetricsInfo.
עכשיו אפשר לגלות בקוד מה הרזולוציה והדחיסות של כל מכשיר שהאפליקציה רצה עליו.
השיעור הבא בקורס: Set Dimensions Programmatically

פרקי ההרצאה: Display Metrics

  1. 00:00

    המחלקה DisplayMetrics

  2. 00:45

    עיצוב הלחצן וה-TextView

  3. 01:52

    איתור הרכיבים בקוד

  4. 02:40

    קבלת DisplayMetrics מה-Resources

  5. 03:19

    קריאת densityDpi

  6. 03:57

    הערכים xdpi ו-ydpi

  7. 04:39

    המקדם dpFactor

תמלול ההרצאה: Display Metrics

הטקסט המלא של הדקות הראשונות בהרצאה «Display Metrics» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

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

  2. 00:23

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

  3. 00:45

    נחפש את text all caps, נגדיר אותו כ-falf. נחפש את text size, ניתן לו איזה 20 SP שנראה את זה ככה בצורה יפה. ונחפש את ה-on click ונגדיר button info, בואו ניקח text view, נשים כאן בדיוק באמצע.

  4. 01:19

    ונגדיר קודם כל ID, נאתר את ה-ID שלו, איפשהו לא יהיה, הנה הוא, ונקרא לו TextView Matrix Info. ניגש ונחפש את הטקסט Size שלו, גם אותו נגדיר 20SP, ונוריד לגמרי את הטקסט.

  5. 01:46

    וכעת אנחנו יכולים לגשת ל-XML, לגשת ללחצן, Button Info, Alt Enter, עוד Enter 1 ואנחנו בתוך הקוד פה אנחנו רוצים לבנות Data Member עבור ה-Text View אז יש לנו פה Text View, קראנו לו Matrix Info, נאתר אותו בעזרת Find View by ID, הנה הוא ואנחנו רוצים עכשיו בזמן הלחיצה להכניס לתוך הטקסט ויו

  6. 02:35

    הזה נתונים לגבי העמידות של המכשיר אז מה יש לנו פה? ראשית יש לנו את המחלקה resources resources מכילה מידע לגבי המשאבים של המכשיר אנחנו יכולים לקבל את המידע הזה על ידי פונקציה שנקראת get resources לאחר שיש לנו את ה-resources של המכשיר, אנחנו יכולים לפתוח אובייקט מטיפוס DisplayMetrics

  7. 03:07

    ולהכניס לתוכו את GetDisplayMetrics מה-resources של המכשיר בואו נפתח פה string, נקרא לזה MatrixInfo ונתחיל לקרוא את המידע מהאובייקט DisplayMetrics עד כדי כך זה פשוט נתחיל עם Density DPI Density DPI זה פשוט מאוד ערך הדוט פר אינץ' שיש לנו במכשיר הנוכחי זה יהיה הגדרה של ה-DPI

  8. 03:45

    כמה DPI המכשיר תומך בו הגדרה הבאה שאנחנו רוצים להגדיר בואו רק נרד כאן איזושהי שורה שיהיה קצת יותר נוח לקרוא את זה בקוד אחרי שנריץ את זה הגדרה הבאה זה כמה DPI יש על ציר X בדרך כלל ה-DPI על ציר X ועל ציר Y הם זהים אבל לא חייב להיות תמיד ככה אז יש לנו xdpi בואו ניגש לדיספליי מטריקס ואנחנו רוצים xdpi

  9. 04:19

    נרד כאן שורה ויש לנו גם את ydpi כמה דוט פר אינץ יש על ציר ה-y נרד שורה ויש לנו הגדרה שנקראת dpFactor זה יהיה פשוט density מה זה dpFactor?

  10. 04:52

    DP Factor זה פשוט כמה פיקסלים שווים DP1 אם אנחנו בדנציטי של 160 דוט פר אינץ' אז פיקסל 1 ראינו ששווה ל-DP1 אם אנחנו בדנציטי של לדוגמה 320 DPI אז כאן DP1 יהיה שווה ל-2 פיקסלים ולכן ה-DP Factor יהיה 2 וכן הלאה

לקורס המלא: קורס פיתוח אפליקציות לאנדרואיד

ההרצאה הקודמת: יחידות מידה Dimension Units - חלק 2

ההרצאה הבאה: Set Dimensions Programmatically

קורסים נוספים במסלול

  • קורס יסודות התכנות - שפת JAVA - קורס ג'אווה למתחילים
  • קורס פיתוח אפליקציות - לאייפון iPhone iOS - ב-Swift-Xcode
  • קורס פלאטר - Flutter - שפת DART של גוגל למובייל - פיתוח אפליקציות לאנדרואיד ואייפון
  • קורס PhoneGap - פיתוח אפליקציות לאנדרואיד ואייפון