PracticU

Patch Resizer

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Patch Resizer
מילון מושגים:
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
תיקייה - מכל במערכת הקבצים שמשמש לארגון קבצים ותיקיות אחרות בתוך מבנה היררכי.
Android - מערכת הפעלה מבוססת Linux לטלפונים ולמכשירים ניידים, שפותחה על ידי גוגל.
GitHub - שירות ענן לאחסון מאגרי קוד מבוססי Git, המאפשר שיתוף פעולה, מעקב גרסאות וניהול פרויקטים.
אמולטור - תוכנה שמחקה מכשיר או סביבה אחרת, למשל כדי להריץ ולבדוק אפליקציית מובייל על המחשב.

Patch Resizer
מכשירי אנדרואיד שונים מציגים תמונות באיכות שונה בהתאם לצפיפות המסך (density, כלומר כמה פיקסלים לאינץ'). ההרצאה מראה איך לספק לכל צפיפות תמונה מתאימה בעזרת תיקיות drawable עם qualifier, ואיך הכלי 9-patch-resizer מייצר אותן אוטומטית.
צפיפויות
- 120 dpi: ldpi
- 160 dpi: mdpi
- 240 dpi: hdpi
- 320 dpi: xhdpi
- 480 dpi: xxhdpi
- 640 dpi: xxxhdpi
תמונה באיכות גבוהה מהמכשיר תוצג פחות טוב מאיכותה, ותמונה באיכות נמוכה תיראה גרועה גם במכשיר טוב. הכי טוב הוא תמונה שמתאימה בדיוק לצפיפות המכשיר.
השלבים העיקריים
1. תיקיות ידניות: New > Android Resource Directory, סוג drawable, qualifier Density. נוצרת למשל drawable-xxhdpi שמקבילה ל-480 dpi, שנמצאת ליד drawable בתוך res. התמונות הרגילות נשארות ב-drawable.
2. הכלי 9-patch-resizer: כלי חינמי להורדה מ-GitHub (קובץ הרצה, ול-Mac קובץ jar). מכינים תיקייה (בדוגמה My Images) עם התמונות באיכות והרזולוציה הגבוהות ביותר, כי רק מהן אפשר לרדת לאיכות נמוכה.
3. בוחרים צפיפויות: מסמנים את הצפיפויות הרצויות. בדוגמה לא נבחר TVDPI כי לא מפתחים לטלוויזיות. אפשר גם להגדיר את איכות התמונה המקורית, ובדוגמה נשארה ברירת המחדל.
4. גוררים את התמונות: גוררים אותן אל החץ בכלי, והוא יוצר תיקיות drawable-hdpi, ldpi, mdpi, xhdpi, xxhdpi, xxxhdpi עם התמונה בגודל המתאים בכל אחת.
5. מדביקים נכון: מעתיקים את התיקיות ומדביקים אותן בתוך תיקיית res ולא בתוך drawable.
6. משתמשים: ב-ImageView מציבים src עם שם התמונה, והמכשיר בוחר לבד את הצפיפות שלו. בבדיקה נכתב על שתי תמונות את שם הצפיפות: האמולטור (480 dpi) הציג את xxhdpi, והמכשיר האמיתי (160 dpi) הציג את mdpi.
שימו לב
תמונה כבדה מדי בתיקיית המשאבים (המרצה מזכיר 1500 עד 2000 קילובייט ומעלה) עלולה לגרום לקריסת האפליקציה, כי המכשיר לא מצליח לשלוף אותה מה-APK. עדיף תמונות לא גדולות במשקלן.
אחרי ההרצאה אפשר לספק תמונות לכל הצפיפויות במהירות ולתת לכל מכשיר את האיכות שמתאימה לו.
השיעור הבא בקורס: Launcher Icon

פרקי ההרצאה: Patch Resizer

  1. 00:00

    איכות תמונה ו-Density של המכשיר

  2. 00:59

    רמות ה-DPI באנדרואיד

  3. 02:38

    תיקיות Drawable לפי Density

  4. 04:17

    הורדת הכלי 9Patch Resizer

  5. 05:13

    הכנת התמונה המקורית

  6. 05:49

    יצירת תמונות לכל Density

  7. 07:25

    העתקת התיקיות לפרויקט

תמלול ההרצאה: Patch Resizer

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

  1. 00:02

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

  2. 00:19

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

  3. 00:36

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

  4. 00:52

    אז בואו קודם כל ניזכר בדנסיטיז השונים שקיימים במכשירים. בואו נעשה איזה ליסט של הדנסיטיז השונים של אנדרואיד.

  5. 01:02

    אז ברגע שיש לנו 120 דוט פר אינץ' שמכשיר מסוגל להציג, אז זה בעצם שווה ל-Low DPI. ברגע שיש לנו 160, והדנסיטי הבא בתור, DPI, זה אומר שיש לנו מדיום DPI. הדנסיטי הבא שמכשירים תומכים בהם זה 240 דוט פר אינץ', וזה שווה ל-High DPI.

  6. 01:31

    הדבר הבא שקיים זה 320 dpi וזה יהיה extra high dpi, הבא בתור זה 480 dpi וזה extra extra high dpi ולבסוף מכשירים תומכים ב-640 דוט פר אינץ׳ וזה אומר xxx hdpi אז אם לדוגמה יש לנו מכשיר או ליוזר יש מכשיר של בוא נניח 320 dpi x hdpi ואנחנו נותנים לו תמונה באיכות גבוהה אז הוא יציג אותה

  7. 02:10

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

  8. 02:29

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

  9. 02:56

    השונות, בהתאם לנושא ה-Qualifier שלמדנו באחד הסרטונים הקודמים. אז כפי שראינו בעבר, בכדי להצליח לעשות את זה אנחנו יכולים ללחוץ מכה שימני על ה-Drawable, New Drawable Resource File, או כרגע אנחנו רוצים באמת להוסיף תיקייה, ולכן בואו נלחץ מכה שימני על תיקיית ה-RES,

  10. 03:18

    Android Resource Directory, אנחנו רוצים וה-Qualifier שאנחנו רוצים זה Density. כאשר אנחנו מוסיפים אותו אנחנו פה יכולים לקבוע את ה-Densities הרצויים בכדי לעבוד איתם.

  11. 03:34

    הנה לדוגמה Extra Extra High Density. ואז בעצם יש לנו את השמות של התיקייה המתאימות. הנה Drawable XXHDPI וזה בעצם מקביל ל-480 DPI. ואז ברגע שאנחנו מצרפים אותה אנחנו אנחנו יכולים להיכנס לסייר הקבצים ולראות שיש לנו drawable ו-drawable-extra-extra-high dpi.

  12. 04:01

    התמונות ה-דיפולטיות יהיו ב-drawable ותמונות שאנחנו רוצים שהן יהיו ספציפית עבור ה-density הזה יהיו בתיקייה הזאת.

  13. 04:10

    כך אנחנו יכולים להוסיף כל מיני תיקיות של drawable ולשים בתוכם תמונות שיתאימו לדחיסות הנכונה. אבל איך אנחנו מייצרים את התמונות בעלות הדחיסות הנכונה?

  14. 04:23

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

  15. 04:39

    והכלי הזה ניתן להורדה בחינם מהאתר הזה. יש לנו פה את GitHub ויש לנו פה את הלינק הזה שאתם רואים פה למעלה וכאן אנחנו יכולים להיכנס ולהוריד את הכלי שנקרא 9-Patch Resizer.

  16. 04:54

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

  17. 05:17

    אז הדבר הראשון שאנחנו צריכים לעשות זה קודם כל להכין את התמונות שלנו. הדבר הבא שאנחנו צריכים לעשות זה לבנות תיקייה ולשים את התמונות בתיקייה. בואו נקרא לתיקייה הזאת My Images ואת כולם נשים בתיקייה My Images.

  18. 05:33

    למרות שהייתי יכול לעשות את זה בלי לשים בתיקייה, מומלץ לשים אותם בתיקייה בלי קשר לשאר התיקיות שקיימות מסביב.

  19. 05:43

    לאחר מכן אני לוקח את הכלי הזה ושם את זה ביחד איתם, והנה יש לנו פה תיקייה עם שלוש תמונות והכלי 9-Patch Resizer.

  20. 05:53

    אנחנו מריצים את הכלי 9-Patch Resizer, Run, הנה הוא רץ, ומה שאנחנו צריכים להבין זה שהתמונות שאנחנו ארגנו חייבות להיות ברזולוציה הגבוהה ביותר ובאיכות הגבוהה ביותר למעשה ורק מהן אפשר לרדת ולעשות תמונות בעלות איכויות נמוכות יותר.

  21. 06:18

    אז אחרי שהבנו את זה ושמנו פה את התמונות באיכות הגבוהה ביותר שניתן להשיג אנחנו יכולים לגשת ולבחור את הרזולוציות או ליתר דיוק הדנסיטיז שאנחנו מעוניינים להגדיר יש לנו כאן אקסטרה אקסטרה אקסטרה היי dpi ו אקס אקס h וכולי tv dpi אני לא אבחר כרגע כי אני לא מתכנת כרגע עבור tvs smart tvs כאן אנחנו מגדירים את האיכות של התמונה המקורית

  22. 06:47

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

  23. 07:13

    הנה יש לנו פה את drawable, מקף hdpi, ldpi, mdpi, xh, xxh ו-triple xhdpi.

  24. 07:23

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

  25. 07:35

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

  26. 07:51

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

  27. 08:05

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

  28. 08:32

    את drawable ואת ששת האוטומטיות האלה שנוצרו על ידי הכלי ליאד ובכל אחת יש את התמונות המתאימות לפי הדנסיטי שנוצר.

  29. 08:46

    כעת כל מה שאנחנו צריכים לעשות זה פשוט להשתמש עם התמונות האלה בלייאאוט שלנו. בואו ניגש ללייאאוט ונבנה כאן image view,

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

ההרצאה הקודמת: Gradient to Image Maker

ההרצאה הבאה: Launcher Icon

הרצאות קשורות מקורסים אחרים

  • ביצוע ולידציה על PATCH Requests

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

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