
drawable עם qualifier, ואיך הכלי 9-patch-resizer מייצר אותן אוטומטית.ldpimdpihdpixhdpixxhdpixxxhdpiNew > Android Resource Directory, סוג drawable, qualifier Density. נוצרת למשל drawable-xxhdpi שמקבילה ל-480 dpi, שנמצאת ליד drawable בתוך res. התמונות הרגילות נשארות ב-drawable.My Images) עם התמונות באיכות והרזולוציה הגבוהות ביותר, כי רק מהן אפשר לרדת לאיכות נמוכה.drawable-hdpi, ldpi, mdpi, xhdpi, xxhdpi, xxxhdpi עם התמונה בגודל המתאים בכל אחת.res ולא בתוך drawable.ImageView מציבים src עם שם התמונה, והמכשיר בוחר לבד את הצפיפות שלו. בבדיקה נכתב על שתי תמונות את שם הצפיפות: האמולטור (480 dpi) הציג את xxhdpi, והמכשיר האמיתי (160 dpi) הציג את mdpi.הטקסט המלא של הדקות הראשונות בהרצאה «Patch Resizer» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אחרי שראינו איך אנחנו יכולים לצרף תמונה לאנדרואיד סטודיו ואיך אנחנו יכולים להשתמש בה, כדאי שנבין עוד עיקרון חשוב בנוגע לתמונות. מכשירי אנדרואיד שונים יכולים להציג איכויות שונות של תמונות.
אותה תמונה יכולה להיות מוצגת באיכויות שונות. במה זה תלוי? זה תלוי ברמת הדנסיטי של המכשיר כמובן. ככל שהדנסיטי של המכשיר יותר גבוה אז הוא מסוגל להציג יותר פיקסלים פר אינץ', ולכן האיכות של התמונה יכולה להיות גבוהה יותר.
כאשר המכשיר הוא בעל דנסיטי נמוך יותר, אז כמובן הוא מסוגל להציג פחות פיקסלים ולכן הוא יכול להציג איכויות נמוכות יותר של תמונות. או אם תהיה תמונה באיכות גבוהה אז כמובן הוא יכול להציג אותה באיכות ירודה יותר.
אז בואו קודם כל ניזכר בדנסיטיז השונים שקיימים במכשירים. בואו נעשה איזה ליסט של הדנסיטיז השונים של אנדרואיד.
אז ברגע שיש לנו 120 דוט פר אינץ' שמכשיר מסוגל להציג, אז זה בעצם שווה ל-Low DPI. ברגע שיש לנו 160, והדנסיטי הבא בתור, DPI, זה אומר שיש לנו מדיום DPI. הדנסיטי הבא שמכשירים תומכים בהם זה 240 דוט פר אינץ', וזה שווה ל-High DPI.
הדבר הבא שקיים זה 320 dpi וזה יהיה extra high dpi, הבא בתור זה 480 dpi וזה extra extra high dpi ולבסוף מכשירים תומכים ב-640 דוט פר אינץ׳ וזה אומר xxx hdpi אז אם לדוגמה יש לנו מכשיר או ליוזר יש מכשיר של בוא נניח 320 dpi x hdpi ואנחנו נותנים לו תמונה באיכות גבוהה אז הוא יציג אותה
פחות טוב מהאיכות עצמה של התמונה אם אנחנו נותנים לו תמונה באיכות נמוכה אז כמובן התמונה עצמה תהיה באיכות נמוכה ואז אנחנו גם ככה נפסיד כי הוא מסוגל להציג באיכות של 320 dpi אבל התמונה היא באיכות ירודה יותר.
אם היינו נותנים לו תמונה ממש באיכות שמתאימה לו אז זה היה הדבר האופטימלי לביצוע. אז הדבר הנכון הרבה פעמים לעשות כאשר אנחנו מציגים תמונות וכאשר אנחנו רוצים שתמונה תהיה מוצגת באיכות המתאימה ביותר לתמונה לפי המכשיר הנוכחי של היוזר זה בעצם לארגן מספר תיקיות drawable שמתאימות לתמונות
השונות, בהתאם לנושא ה-Qualifier שלמדנו באחד הסרטונים הקודמים. אז כפי שראינו בעבר, בכדי להצליח לעשות את זה אנחנו יכולים ללחוץ מכה שימני על ה-Drawable, New Drawable Resource File, או כרגע אנחנו רוצים באמת להוסיף תיקייה, ולכן בואו נלחץ מכה שימני על תיקיית ה-RES,
Android Resource Directory, אנחנו רוצים וה-Qualifier שאנחנו רוצים זה Density. כאשר אנחנו מוסיפים אותו אנחנו פה יכולים לקבוע את ה-Densities הרצויים בכדי לעבוד איתם.
הנה לדוגמה Extra Extra High Density. ואז בעצם יש לנו את השמות של התיקייה המתאימות. הנה Drawable XXHDPI וזה בעצם מקביל ל-480 DPI. ואז ברגע שאנחנו מצרפים אותה אנחנו אנחנו יכולים להיכנס לסייר הקבצים ולראות שיש לנו drawable ו-drawable-extra-extra-high dpi.
התמונות ה-דיפולטיות יהיו ב-drawable ותמונות שאנחנו רוצים שהן יהיו ספציפית עבור ה-density הזה יהיו בתיקייה הזאת.
כך אנחנו יכולים להוסיף כל מיני תיקיות של drawable ולשים בתוכם תמונות שיתאימו לדחיסות הנכונה. אבל איך אנחנו מייצרים את התמונות בעלות הדחיסות הנכונה?
אז למעשה קיים כלי מיוחד עבור אנדרואיד שמאפשר לנו גם ליצור את התיקיות האלה וגם ליצור את התמונה באיכות המתאימה עבורן. בואו ניפטר רגע מהתיקייה הזאת כי אנחנו הולכים לעשות את זה בעזרת כלי יותר מתאים.
והכלי הזה ניתן להורדה בחינם מהאתר הזה. יש לנו פה את GitHub ויש לנו פה את הלינק הזה שאתם רואים פה למעלה וכאן אנחנו יכולים להיכנס ולהוריד את הכלי שנקרא 9-Patch Resizer.
בואו ניכנס לקובץ האקסקיושן, אם יש לכם מאק אתם יכולים להיכנס לג'אר, נוריד אותו לדסטופ, צא מזה, נגיע לדסטופ והכנתי כאן שלוש תמונות שאני רוצה להגדיר אותן בדנסיטיז שונים.
אז הדבר הראשון שאנחנו צריכים לעשות זה קודם כל להכין את התמונות שלנו. הדבר הבא שאנחנו צריכים לעשות זה לבנות תיקייה ולשים את התמונות בתיקייה. בואו נקרא לתיקייה הזאת My Images ואת כולם נשים בתיקייה My Images.
למרות שהייתי יכול לעשות את זה בלי לשים בתיקייה, מומלץ לשים אותם בתיקייה בלי קשר לשאר התיקיות שקיימות מסביב.
לאחר מכן אני לוקח את הכלי הזה ושם את זה ביחד איתם, והנה יש לנו פה תיקייה עם שלוש תמונות והכלי 9-Patch Resizer.
אנחנו מריצים את הכלי 9-Patch Resizer, Run, הנה הוא רץ, ומה שאנחנו צריכים להבין זה שהתמונות שאנחנו ארגנו חייבות להיות ברזולוציה הגבוהה ביותר ובאיכות הגבוהה ביותר למעשה ורק מהן אפשר לרדת ולעשות תמונות בעלות איכויות נמוכות יותר.
אז אחרי שהבנו את זה ושמנו פה את התמונות באיכות הגבוהה ביותר שניתן להשיג אנחנו יכולים לגשת ולבחור את הרזולוציות או ליתר דיוק הדנסיטיז שאנחנו מעוניינים להגדיר יש לנו כאן אקסטרה אקסטרה אקסטרה היי dpi ו אקס אקס h וכולי tv dpi אני לא אבחר כרגע כי אני לא מתכנת כרגע עבור tvs smart tvs כאן אנחנו מגדירים את האיכות של התמונה המקורית
נשאיר את זה בדיפולט כרגע ונבחר את כל התמונות ופשוט נגרור אותם על החץ הזה אני זורק אותם ושימו לב שאוטומטית הכלי הזה יוצר לי תיקיות שהשמות שלהן בדיוק מתאימות לדנסיטיז לפי השמות שאנדרואיד מחפש.
הנה יש לנו פה את drawable, מקף hdpi, ldpi, mdpi, xh, xxh ו-triple xhdpi.
בתוך כל תיקייה אנחנו יכולים לראות שנוצרו לנו התמונות, והכלי הזה גם סידר אותם באיכות המתאימה לדנסיטי. מה אנחנו עושים עם זה?
אנחנו לוקחים את התיקיות האלה, בואו נסמן את כולם עם קונטרול ונעשה להם קופי. אחרי שהעתקנו אותם אנחנו חוזרים לאנדרואיד סטודיו ואנחנו מדביקים אותם.
אבל שימו לב, אנחנו לא מדביקים אותם בתוך תיקיית הדוראבל, כי דוראבל היא תיקייה בפני עצמה והתיקיות האלה לא אמורות להיות בתוך תיקיית הדוראבל. איפה הם אמורים להיות?
ליד תיקיית drawable כלומר בתוך תיקיית ה-resource ולכן חשוב להדביק אותם בתוך תיקיית ה-resource אז נלך ל-resource נעשה paste נגיד לו אוקיי ואוטומטית אנחנו רואים את כל התמונות ממש בתוך תיקיית ה-drawable כאילו שאנחנו בנינו את כל התיקיות האלה בעצמנו אם אנחנו ניגשים כרגע ופונים לסייר הקבצים אז כמובן אנחנו נראה שם
את drawable ואת ששת האוטומטיות האלה שנוצרו על ידי הכלי ליאד ובכל אחת יש את התמונות המתאימות לפי הדנסיטי שנוצר.
כעת כל מה שאנחנו צריכים לעשות זה פשוט להשתמש עם התמונות האלה בלייאאוט שלנו. בואו ניגש ללייאאוט ונבנה כאן image view,