PracticU

זיהוי מגע באנדרואיד

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

זיהוי מגע באנדרואיד
Touch Events מאפשרים לאפליקציה לדעת מה המשתמש עושה באצבע על המסך: נוגע, עוזב או זז. בהרצאה בונים מסך עם TextView שמציג את סוג האירוע ואת המיקום שלו.
איך מזהים נגיעה
1. הרעיון: קודם מזהים אירועים בסיסיים (נגיעה, עזיבה, תזוזה), ואחר כך אפשר לזהות מהם gestures כמו pinch לזום או החלקה של תמונה. ציור על המסך יילמד בהמשך, בנושא הגרפיקה.
2. דריסת הפונקציה: דורסים ברמת ה-Activity את onTouchEvent, שמקבלת אובייקט event של האירוע.
3. סוג האירוע: עושים switch על event.getAction(). הקבועים בהרצאה הם MotionEvent.ACTION_DOWN (נגיעה בלי עזיבה), ACTION_UP ו-ACTION_MOVE.
4. הצגת הנתונים: בונים מחרוזת עם String.format שכוללת את שם הפעולה ואת event.getX() ו-event.getY() בפורמט %.2f, ומציבים אותה ב-TextView.
5. ערך החזרה: מחזירים true אם הטיפלנו באירוע, ו-false בסוף הפונקציה אם לא עשינו עם האירוע שום דבר.
6. תוצאות: בבדיקה באמולטור ובמכשיר אמיתי רואים Down ו-Up בנגיעה קצרה, ו-Move כל עוד גוררים בלי לעזוב. הנקודה x=0, y=0 בפינה השמאלית העליונה, x גדל ימינה ו-y גדל למטה.
בהרצאה הבאה מזהים את אותם אירועים על רכיב אחר, למשל תמונה, ולא על ה-Activity.
השיעור הבא בקורס: זיהוי מגע בתוך רכיב

פרקי ההרצאה: זיהוי מגע באנדרואיד

  1. 00:00

    אירועי Touch ו-Gestures

  2. 01:17

    דריסת הפונקציה onTouchEvent

  3. 01:57

    זיהוי Action Down עם getAction

  4. 03:15

    הצגת מיקום הנגיעה עם getX ו-getY

  5. 03:57

    ערך החזרה וזיהוי Action Up ו-Move

תמלול ההרצאה: זיהוי מגע באנדרואיד

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

  1. 00:02

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

  2. 00:29

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

  3. 00:49

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

  4. 01:00

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

  5. 01:26

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

  6. 01:43

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

  7. 02:03

    בואו ניקח כאן StringData ונבצע סוויץ' על Event.getAction כאשר Event זה המשתנה שהתקבל לפונקציה ו-getAction מחזיר לנו קבוע שמייצג מה בדיוק המשתמש ביצע.

  8. 02:24

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

  9. 02:45

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

  10. 03:16

    אז יש לנו פה איזשהו אחוז 2f y גם כן אחוז נקודה 2f רק בכדי להציג את זה עם נקודה עשרונית ויש לנו את משתנה ה-Event, Get X, נותן לנו את ה-X שהמשתמש נגע בו, ויש לנו את Get Y, מאפשר לנו לקבל את ה-Y שהמשתמש נגע.

  11. 03:45

    הנה ה-Text View שלנו, בואו נגדיר Set Text Data, ואנחנו צריכים להחזיר מהפונקציה משתנה בוליאני שמתאר האם אנחנו בעצם צרכנו את האירוע וביצענו פעולה לאירוע הזה או לא אז בוא נניח שאם אני מציג את המידע, זאת אומרת שקיבלתי מהמערכת את האירוע

  12. 04:10

    וביצעתי פעולה כלשהי אז אנחנו רוצים להחזיר true בסוף הפונקציה נחזיר false כי בעצם לא ביצענו שום דבר עם האירוע הזה אז קודם כל יש לנו פה action down ואז בואו ניקח את action up ואז נוכל לגלות גם כשהמשתמש עוזב את הלחיצה ועזב ובואו ניקח עוד אחד של אקשן מוב ונדביק את זה פה והנה יש לנו מספיק שלושה רק בשביל להציג את הרעיון ויש כמובן עוד כל מיני אירועים ופעולות שאנחנו יכולים לזהות.

  13. 04:58

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

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

ההרצאה הקודמת: הרשאות מסוכנות על אנדרואיד

ההרצאה הבאה: זיהוי מגע בתוך רכיב

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

  • פרוקסי באנדרואיד עם Burp
  • זיהוי חטיפת DLL
  • זיהוי משתמשים - identity awareness - חלק 1
  • כתיבת טסטים - דפדפן זיהוי אלמנטים - חלק 1

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

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