PracticU

פונקציות Interpolator

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

פונקציות Interpolator
Interpolator היא פונקציה מתמטית שקובעת איך האנימציה מתקדמת לאורך הזמן. ההרצאה עוברת על הסוגים הקיימים באנדרואיד ומדגימה כל אחד על אותה אנימציה.
איך בונים את הדוגמה
1. פונקציה אחת, interpolator משתנה: כותבים animate שמקבלת Interpolator, מחלקת הבסיס של כולם. חשוב לייבא את android.view.animation.Interpolator ולא את הגרסה מ-android.graphics.
2. האנימציה: TranslateAnimation מ-y=0 עד 500 פיקסלים למטה, בלי תזוזה ב-x. משך שנייה (1000 מילי-שניות), setRepeatCount(1) ו-setRepeatMode(Animation.REVERSE), כדי שתחזור לנקודת המוצא.
3. חיבור: אם ה-interpolator שהתקבל אינו null, קוראים ל-setInterpolator. אחר כך startAnimation על ה-ImageView.
4. כפתור לכל סוג: כל כפתור קורא ל-animate עם אובייקט מהטיפוס המתאים. הראשון שולח null, כלומר ללא interpolator.
הסוגים שנבדקו
- LinearInterpolator: תנועה אחידה לכל אורך הדרך.
- AccelerateInterpolator: מתחיל לאט והולך מהר, ובדרך חזרה ההפך.
- DecelerateInterpolator: מתחיל מהר והולך לאט.
- AccelerateDecelerateInterpolator: לאט, מהר, לאט.
- AnticipateInterpolator: ציפייה, זז קצת לכיוון ההפוך לפני שמתקדם.
- OvershootInterpolator: עובר את נקודת הסיום וחוזר.
- AnticipateOvershootInterpolator: שילוב של שניהם.
- FastOutLinearInInterpolator, FastOutSlowInInterpolator ו-LinearOutSlowInInterpolator.
- BounceInterpolator: קפיצות בסוף.
- CycleInterpolator: מבצע מחזורים, וה-constructor מקבל מספר מחזורים, בהדגמה 1.
- PathInterpolator: מקבל אובייקט Path שמגדיר את המהלך. בהדגמה lineTo ל-(0, 0.25), moveTo ל-(0, 0.5) ו-lineTo ל-(1, 1), ולכן האנימציה קופצת, מתקדמת עד רבע, קופצת לחצי וממשיכה לסוף. הוא תלוי ב-API level, והשגיאה על כך הושתקה לצורך הדוגמה.
הדרך להחליט היא להריץ ולראות איזה interpolator מתאים לשימוש שלכם, כי אותה אנימציה נראית שונה בכל אחד מהם.
השיעור הבא בקורס: Code Animators

פרקי ההרצאה: פונקציות Interpolator

  1. 00:00

    מהי פונקציית Interpolator

  2. 00:38

    סקירת פונקציות ה-Interpolator הקיימות

  3. 02:23

    בניית פונקציית animate משותפת

  4. 03:20

    הגדרת TranslateAnimation לבדיקה

  5. 04:39

    שימוש ב-setInterpolator ותיקון ה-package

  6. 06:37

    שליחת אובייקט Interpolator מכל לחצן

תמלול ההרצאה: פונקציות Interpolator

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

  1. 00:02

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

  2. 00:22

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

  3. 00:34

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

  4. 00:53

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

  5. 01:15

    אז בואו נעבור עליהם ואז ניגש לקוד ונראה איך אנחנו בונים אותם. אז יש לנו כאן אפשרות ל-Linear, Accelerate, כלומר תאוצה, Decelerate, כלומר תאותה, גם Accelerate וגם Decelerate, לאחר מכן יש לנו Anticipate, ציפייה, Overshoot, כלומר יתר, מעבר לנקודת הסוף, לאחר מכן יש לנו פונקציה שמתארת Anticipate Overshoot,

  6. 01:45

    גם מעין ציפייה כזאת וגם Overshoot, לאחר מכן פונקציה שנקראת FastOutLinearIn, יש לנו FastOutSlowIn, יש לנו LinearOutSlowIn, יש לנו את פונקציית ה-Bounce, יש לנו פונקציה שנקראת Cycle, ולבסוף Path.

  7. 02:07

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

  8. 02:38

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

  9. 02:57

    אז מה שאנחנו רוצים לעשות זה פונקציית private void ונקרא לה פשוט animate ויתקבל את פונקציית ה-interpolator שזאת בעצם מחלקת הבסיס של כל האובייקטים שמתארים פונקציות אינטרפולטיות שונות.

  10. 03:20

    בואו נקרא לזה פשוט אינטרפולטור, ובואו נגדיר את אותה אנימציה שהגדרנו בסוף הסרטון הקודם, זה היה translateAnimation, נקרא לזה translateAnimation, נגדיר new, translateAnimation, ונגדיר שה-x מתחיל מ-0 אבל נשאר ב-0, אין לנו תזוזה על ציר x, נגדיר שה-y מתחיל ממקום 0, כלומר כמובן מהמיקום הנוכחי של התמונה,

  11. 03:53

    והולך עד 500 פיקסלים לכיוון מטה. לאחר מכן נגדיר Duration, Translate Animation, Set Duration למשך שנייה אחת, אלף מילי שניות.

  12. 04:08

    לאחר מכן, Translate Animation, Set Repeat Count 1, זאת אומרת שפעם אחת תהיה חזרה ואז הוא יחזור לנקודת המוצא. translateAnimation, setRepeatMode, נגדיר אותו כAnimation.reverse, אנחנו רוצים שהוא יחזור בחזרה, ולא לדוגמה יתחיל מההתחלה כRepeat לנקודת היעד, וכעת אנחנו רוצים לבדוק האם האינטרפולטור ששלחנו לפונקציה שונה מנהל,

  13. 04:44

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

  14. 05:10

    יש לנו פה רק איזושהי שגיאה, בואו נאתר אותה, המערכת דורשת מאיתנו שאנחנו ניתן Android View Animation Interpolator, אבל שלחנו Android Graphics Interpolator.

  15. 05:29

    אז בואו רק נשנה את זה, לא לגרפיקס, אלא לאנדרואיד View Animation, זה כמובן יהיה פה למעלה, איפה אנחנו רואים את הגרפיקס ששלחנו, הנה הוא, אז אנחנו רוצים לשנות אותו לאנדרואיד View, ואני כבר לא זוכר מה זה היה שם, Android view animation interpolator, בסדר, animation, זאת אומרת שיש לנו בעצם שתי, שני פאקג'ים של interpolator

  16. 06:04

    ואנחנו צריכים את Android view animation interpolator, בואו נראה אם זה מסתדר, פרפקט ואחרי שסיימנו להגדיר את כל ה-translate animation, אנחנו רוצים לגשת ל-image view, tart animation ולתת את ה-Translate Animation אז בנינו פעם אחת פונקציה שנקראת Animate וכל מה שהיא צריכה לעשות זה פשוט לקבל בכל אחד מהרצנים את הפונקציה המתאימה של האינטרפולטור

  17. 06:37

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

  18. 06:57

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

  19. 07:14

    אם אנחנו רוצים לשלוח אקסלרייט, בואו ניגש לאנימייט ונשלח ניו, ויש לנו Accelerate Interpolator וזה פשוט ממש אובייקטים שאנחנו שולחים למטה אנחנו פשוט מצרפים אותם

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

ההרצאה הקודמת: אנימציה ראשונה שלי באנדרואיד

ההרצאה הבאה: Code Animators

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

  • פונקציות למתקדמים
  • פונקציות - Functions (חלק 1)
  • פונקציות - Functions
  • פונקציות בפייטון - חלק 1

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

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