
onTouchEvent, שמקבלת אובייקט event של האירוע.event.getAction(). הקבועים בהרצאה הם MotionEvent.ACTION_DOWN (נגיעה בלי עזיבה), ACTION_UP ו-ACTION_MOVE.String.format שכוללת את שם הפעולה ואת event.getX() ו-event.getY() בפורמט %.2f, ומציבים אותה ב-TextView.true אם הטיפלנו באירוע, ו-false בסוף הפונקציה אם לא עשינו עם האירוע שום דבר.הטקסט המלא של הדקות הראשונות בהרצאה «זיהוי מגע באנדרואיד» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא שנקרא Touch Events. בנושא ה-Touch Events אנחנו הולכים לזהות אירועים שהמשתמש מבצע על ידי נגיעה במסך של המכשיר. אנחנו יכולים לזהות נגיעה, אנחנו יכולים לזהות עזיבה אחרי שהוא נגע, אנחנו יכולים לזהות תזוזה עם היד או עם איזשהו פוינטר אחר, אנחנו יכולים לזהות פינצ'ינג ועוד כל מיני
אירועים. המטרה זה קודם כל לזהות את האירועים הבסיסיים, כלומר נגיעה, עזיבה, תזוזה וכדומה ולאחר מכן לפי האירועים האלה לזהות משהו שנקרא ג'שטרס, כלומר לדוגמה אם היוזר מבצע פינצ'ינג על המכשיר ומבצע מעין צביטה כזאת בכדי לבצע זום אין
או זום אאוט לגלות שזה מה שהיה. אם המשתמש מבצע סלייד כי הוא רוצה להזיז איזה תמונה הצידה לזהות שהוא ביצע סליידינג וכדומה.
אפשר לאחר מכן גם להגיע לגרפיקה ולבצע ציור על המכשיר בעזרת האירועים האלה, אבל זה יהיה בהמשך בנושא נפרד שמטפל בגרפיקה. אז קודם כל יש לנו כאן מסך ריק לגמרי ויש לנו כאן טקסט ויו ואנחנו רוצים בלחיצה או בנגיעה או בכל תזוזה שהיא על המסך להציג בטקסט ויו מה המשתמש ביצע.
אז בואו נראה איך אנחנו יכולים לזהות את זה. אז אנחנו צריכים להירשם ברמת האקטיביטי לאירוע שנקרא on-touch event. זה בעצם דריסה יותר נכון של פונקציה שנקראת on-touch event.
ובפונקציה הזאת אנחנו מקבלים את האירוע שקרה למשתמש, המשתמש ביצע יותר נכון, ואנחנו יכולים לבצע נניח הצגה של המידע או ביצוע פעולות למה שהמשתמש ביצע על המסך של המכשיר.
בואו ניקח כאן StringData ונבצע סוויץ' על Event.getAction כאשר Event זה המשתנה שהתקבל לפונקציה ו-getAction מחזיר לנו קבוע שמייצג מה בדיוק המשתמש ביצע.
ויש לנו סדרת קבועים. אז בואו ניקח לדוגמה את motionEvent.ActionDown וזה אומר שהמשתמש רק ביצע לחיצה על המסך ועדיין אפילו לא ביצע עזיבה, רק הנגיעה על המסך זה ה-ActionDown.
מה שאנחנו רוצים לעשות זה רק להציג את זה בתור התחלה, אז בואו ניקח ונכניס לתוך המשתנה data, String.Format, נכתוב שאנחנו בעצם זיהינו שיתבצע אקשן דאון ובואו נרד כאן שורה בהדפסה ונגיד גם מה המיקום שהמשתמש ביצע את הנגיעה בהמשך כמובן נשתמש עם הנתונים האלה.
אז יש לנו פה איזשהו אחוז 2f y גם כן אחוז נקודה 2f רק בכדי להציג את זה עם נקודה עשרונית ויש לנו את משתנה ה-Event, Get X, נותן לנו את ה-X שהמשתמש נגע בו, ויש לנו את Get Y, מאפשר לנו לקבל את ה-Y שהמשתמש נגע.
הנה ה-Text View שלנו, בואו נגדיר Set Text Data, ואנחנו צריכים להחזיר מהפונקציה משתנה בוליאני שמתאר האם אנחנו בעצם צרכנו את האירוע וביצענו פעולה לאירוע הזה או לא אז בוא נניח שאם אני מציג את המידע, זאת אומרת שקיבלתי מהמערכת את האירוע
וביצעתי פעולה כלשהי אז אנחנו רוצים להחזיר true בסוף הפונקציה נחזיר false כי בעצם לא ביצענו שום דבר עם האירוע הזה אז קודם כל יש לנו פה action down ואז בואו ניקח את action up ואז נוכל לגלות גם כשהמשתמש עוזב את הלחיצה ועזב ובואו ניקח עוד אחד של אקשן מוב ונדביק את זה פה והנה יש לנו מספיק שלושה רק בשביל להציג את הרעיון ויש כמובן עוד כל מיני אירועים ופעולות שאנחנו יכולים לזהות.
אנחנו רוצים להריץ את זה גם על האמולטור וגם על המכשיר האמיתי בכדי לראות איך זה מתנהג