
DisplayMetrics מאפשרת לשאול את המכשיר בזמן ריצה מה הרזולוציה והדחיסות שלו. בשיעור בונים לחצן שמציג את הנתונים האלה בטקסט.show metrics info, textAllCaps כבוי ו-textSize של 20sp, ו-TextView עם ID בשם textViewMetricsInfo. את הפונקציה של ה-onClick יוצרים עם Alt+Enter.TextView ומאתרים אותו עם findViewById.getResources() כדי לקבל את משאבי המכשיר, ופותחים אובייקט DisplayMetrics מתוך getDisplayMetrics().densityDpi - הדחיסות הכללית בנקודות לאינץ'.xdpi ו-ydpi - הדחיסות בציר X ובציר Y. בדרך כלל הן זהות, אבל לא תמיד.density - ה-DP factor, כמה פיקסלים שווים ל-dp אחד. למשל 2 כשהדחיסות 320.scaledDensity - ה-SP factor, כמו ה-DP factor בתוספת התאמה לגודל הגופן.widthPixels ו-heightPixels - הרזולוציה בפיקסלים.TextView נכתב לא נכון. תיקנו אותו ל-textViewMetricsInfo.הטקסט המלא של הדקות הראשונות בהרצאה «Display Metrics» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
באנדרואיד קיים את המחלקה Display Metrics. Display Metrics מאפשרת לנו בזמן הריצה לגלות מידע לגבי כל מה שקשור לעולם המידות שראינו בנוגע למסכים, בנוגע לרזולוציה, בנוגע לדנסיטי של המכשיר.
אז בואו נראה איך אנחנו יכולים עם המחלקה הזאת לגלות את הנתונים האלה. בואו ניקח ראשית איזשהו לחצן ובלחיצה עליו אנחנו רוצים לקרוא את ההגדרות האלה מהמכשיר. אז ראשית, בואו נחפש את הטקסט שלו ונכתוב עליו show matrix info.
נחפש את text all caps, נגדיר אותו כ-falf. נחפש את text size, ניתן לו איזה 20 SP שנראה את זה ככה בצורה יפה. ונחפש את ה-on click ונגדיר button info, בואו ניקח text view, נשים כאן בדיוק באמצע.
ונגדיר קודם כל ID, נאתר את ה-ID שלו, איפשהו לא יהיה, הנה הוא, ונקרא לו TextView Matrix Info. ניגש ונחפש את הטקסט Size שלו, גם אותו נגדיר 20SP, ונוריד לגמרי את הטקסט.
וכעת אנחנו יכולים לגשת ל-XML, לגשת ללחצן, Button Info, Alt Enter, עוד Enter 1 ואנחנו בתוך הקוד פה אנחנו רוצים לבנות Data Member עבור ה-Text View אז יש לנו פה Text View, קראנו לו Matrix Info, נאתר אותו בעזרת Find View by ID, הנה הוא ואנחנו רוצים עכשיו בזמן הלחיצה להכניס לתוך הטקסט ויו
הזה נתונים לגבי העמידות של המכשיר אז מה יש לנו פה? ראשית יש לנו את המחלקה resources resources מכילה מידע לגבי המשאבים של המכשיר אנחנו יכולים לקבל את המידע הזה על ידי פונקציה שנקראת get resources לאחר שיש לנו את ה-resources של המכשיר, אנחנו יכולים לפתוח אובייקט מטיפוס DisplayMetrics
ולהכניס לתוכו את GetDisplayMetrics מה-resources של המכשיר בואו נפתח פה string, נקרא לזה MatrixInfo ונתחיל לקרוא את המידע מהאובייקט DisplayMetrics עד כדי כך זה פשוט נתחיל עם Density DPI Density DPI זה פשוט מאוד ערך הדוט פר אינץ' שיש לנו במכשיר הנוכחי זה יהיה הגדרה של ה-DPI
כמה DPI המכשיר תומך בו הגדרה הבאה שאנחנו רוצים להגדיר בואו רק נרד כאן איזושהי שורה שיהיה קצת יותר נוח לקרוא את זה בקוד אחרי שנריץ את זה הגדרה הבאה זה כמה DPI יש על ציר X בדרך כלל ה-DPI על ציר X ועל ציר Y הם זהים אבל לא חייב להיות תמיד ככה אז יש לנו xdpi בואו ניגש לדיספליי מטריקס ואנחנו רוצים xdpi
נרד כאן שורה ויש לנו גם את ydpi כמה דוט פר אינץ יש על ציר ה-y נרד שורה ויש לנו הגדרה שנקראת dpFactor זה יהיה פשוט density מה זה dpFactor?
DP Factor זה פשוט כמה פיקסלים שווים DP1 אם אנחנו בדנציטי של 160 דוט פר אינץ' אז פיקסל 1 ראינו ששווה ל-DP1 אם אנחנו בדנציטי של לדוגמה 320 DPI אז כאן DP1 יהיה שווה ל-2 פיקסלים ולכן ה-DP Factor יהיה 2 וכן הלאה