PracticU

Vector Drawable - SVG

בלי כתוביותעם כתוביות
PracticU › קורס פיתוח אפליקציות - לאנדרואיד - Android - ב-JAVA › Vector Drawable - SVG
מילון מושגים:
XML - שפת סימון לייצוג נתונים מובְנים בעזרת תגיות, המשמשת להחלפת מידע בין מערכות ולקובצי הגדרות.
Android - מערכת הפעלה מבוססת Linux לטלפונים ולמכשירים ניידים, שפותחה על ידי גוגל.
רכיב - יחידת בניין עצמאית וניתנת לשימוש חוזר בתוך מערכת או ממשק משתמש, שאחראית על חלק מוגדר מהתפקוד.
תמונה - קובץ גרפי המוצג על המסך. בהקשר של וירטואליזציה או Docker, תבנית מוכנה שממנה יוצרים מכונה או קונטיינר.
פיקסל - נקודת הצבע הקטנה ביותר שמרכיבה תמונה או תצוגה על המסך.
תגית - סימון בקוד, למשל ב-HTML, שתוחם רכיב ומגדיר את תפקידו או תכונותיו. גם תווית לסימון וקיטלוג פריטים.
כפתור - רכיב בממשק המשתמש שהמשתמש לוחץ עליו כדי להפעיל פעולה, כמו שליחת טופס או מעבר לדף אחר.
View - רכיב שאחראי על הצגת המידע למשתמש (התצוגה) בדפוס MVC. גם טבלה וירטואלית מבוססת שאילתה במסד נתונים.

Vector Drawable - SVG
פורמט SVG (Scalable Vector Graphics) מגדיר ציור בקובץ XML באמצעות וקטורים, כלומר כיוונים וגדלים ולא פיקסלים. Android Studio תומך בו דרך קובץ בתיקיית drawable, וההרצאה מציירת בו משולש ומציבה אותו כרקע של רכיבים.
למה וקטור
כשעושים zoom in לתמונה וקטורית היא לא מתפקסלת ונראית אותו דבר בכל הגדלה. הקובץ קטן מאוד, בשונה מתמונת פיקסלים שבה צריך לתאר כל פיקסל. אזורים שלא צוירו נשארים שקופים, ולכן רואים דרכם את הרקע שמאחורי הרכיב.
איך בונים את הקובץ
1. תגית vector: יוצרים קובץ ב-drawable (בדוגמה vector_triangle) ומחליפים את תגית השורש מ-selector ל-vector.
2. מידות: viewportWidth ו-viewportHeight הם מידות המשטח כולו (קנבס), בלי יחידות, ובדוגמה 300 כל אחד. width ו-height הם מידות הציור עצמו, עם יחידות.
3. תגית path: מקבלת fillColor (בדוגמה אדום כהה) ו-pathData, מחרוזת בשפת SVG שמתארת את הציור.
4. ציר הקואורדינטות: ההתחלה (0,0) בפינה השמאלית העליונה. X גדל ימינה ו-Y גדל כלפי מטה.
5. פקודות בשפה: האות M היא move to, מעבר לנקודה בלי למתוח קו. L היא line to, קו אל נקודה. Z סוגרת את הצורה. אות גדולה מציינת קואורדינטות מוחלטות ביחס לקנבס, ואות קטנה מציינת תזוזה יחסית לנקודה האחרונה.
6. המשולש בשתי שיטות: ביחסי: מעבר ל-100,100, קו של 100 ימינה ו-100 למטה, קו של 100 שמאלה ו-100 למטה, ואז z. במוחלט מגיעים לאותה תוצאה עם הנקודות 100,100, 200,200 ו-100,300 וסגירה ב-Z.
7. שימוש: מציבים את הקובץ כ-background של Button בגודל 200dp על 200dp, או של View רגיל (מחלקת הבסיס של הרכיבים הוויזואליים) כשרוצים רק את הציור.
שימו לב
- בשפת SVG יש עוד אותיות לקווים עקומים, קשתות ועיגולים, ואפשר לחפש אותן באינטרנט.
אחרי ההרצאה אפשר לצייר צורות פשוטות בפורמט וקטורי, להבדיל בין קואורדינטות מוחלטות ליחסיות ולהציב את הציור על רכיבי מסך.
השיעור הבא בקורס: Android Button Maker

פרקי ההרצאה: Vector Drawable - SVG

  1. 00:00

    מהו פורמט SVG ויתרונותיו

  2. 01:01

    הגדרת מימדים ו-Viewport

  3. 02:16

    ציור עם Path ו-pathData

  4. 03:21

    פקודת Move To ומערכת הצירים

  5. 04:58

    ציור קווים עם Line To

  6. 06:24

    השלמת ציור המשולש

תמלול ההרצאה: Vector Drawable - SVG

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

  1. 00:03

    אנדרואיד סטודיו תומכת ביצירת ציור על ידי פורמט שנקרא SVG. SVG זה קיצור של Scalable Vector Graphics. זה בעצם פורמט שנכתב ב-XML לצורך הגדרת ציור על ידי וקטורים.

  2. 00:22

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

  3. 00:45

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

  4. 01:04

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

  5. 01:20

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

  6. 01:44

    הדבר הבא שנגדיר זה viewport-height. פה נגדיר גם כן 300. הרוחב והגובה הבא שאנחנו מגדירים זה של הציור עצמו שנמצא בתוך המשטח. בואו נגדיר אותו גם כן באותם מימדים.

  7. 01:58

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

  8. 02:16

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

  9. 02:34

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

  10. 02:49

    יש בעצם שתי שפות שעשו מהן איזשהו חיבור בשביל לייצר את שפת svg. אחת השפות נקראת vml, Vector Markup Language, ויש עוד איזושהי שפה, אבל עשו מהן איזשהו מישמש והגדירו שפה אחת שמייצגת את שפת ה-svg.

  11. 03:09

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

  12. 03:25

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

  13. 03:41

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

  14. 04:04

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

  15. 04:27

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

  16. 04:41

    בהתחלה אנחנו עדיין כמובן ב-0,0 ולכן בהתחלה זה לא משנה. בואו נישאר עם m קטנה בתור התחלה. אז מה שאמרנו כרגע זה move to נקודה x שווה 100, y שווה 100, הוא אמור לגשת לנו למיקום כזה ולשים פה את ההתחלה של הציור.

  17. 04:58

    כאשר הגדרנו לפני זה שכל ה-canvas הוא 300 על 300. לאחר מכן אנחנו מגדירים לו LL מתאר Line 2, לאן אנחנו רוצים עכשיו לבצע את הציור עצמו. בואו נצייר משולש.

  18. 05:15

    זאת אומרת, מפה אנחנו הולכים לכאן, לכאן ובחזרה. אז מה זה אומר שאנחנו הולכים לכאן? זה אומר שיש לנו קו שמתקדם X מהו ו-Y מהנוספים.

  19. 05:30

    אז X יהיה בעצם 100 ימינה ו-Y יהיה 100 למטה בגלל שה-L היא קטנה אז זה אומר שאנחנו מתקדמים 100 ו-100 מהנקודה הנוכחית שלנו אז בואו ניקח 100 100 ויש לנו כאן בעצם איזשהו ציור וירטואלי שהולך לכאן כי התקדמנו 100 ימינה מהנקודה הנוכחית שלנו ו-100 למטה מהנקודה הנוכחית שלנו בואו

  20. 06:00

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

  21. 06:11

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

  22. 06:37

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

  23. 07:00

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

  24. 07:21

    מה זה אומר בחזרה?

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

ההרצאה הקודמת: Transition Drawable

ההרצאה הבאה: Android Button Maker

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

  • Distance-Vector vs Link-State

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

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