PracticU

Grid View

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

Grid View
רכיב GridView מציג פריטים בשורות ועמודות. בשיעור מציגים בו תמונות של חיות עם Adapter משלנו, ותופסים לחיצה על תמונה.
השלבים העיקריים
1. ההגדרה ב-XML: GridView ברוחב וגובה match_parent עם id. התכונות שמגדירים: columnWidth (90dp), numColumns (ערך קבוע, או auto_fit להתאמה אוטומטית למכשיר), verticalSpacing ו-horizontalSpacing (10dp) ו-gravity במרכז.
2. Adapter: מחלקה AnimalsAdapter extends BaseAdapter, עם מימוש הפונקציות. בה מערך של מזהי ה-drawable של עשר תמונות החיות, שוכפל פי שלושה כדי ליצור נפח.
3. הפונקציות: getCount מחזירה את אורך המערך. getItem ו-getItemId לא נדרשות כאן. getView מחזירה את ה-ImageView של כל תא.
4. שימוש חוזר ב-view: הפרמטר convertView מייצג רכיב שכבר נוצר בעבר. אם הוא null יוצרים ImageView חדש עם Context שהתקבל בקונסטרקטור ו-GridView.LayoutParams של 200 על 200 פיקסלים. אחרת משתמשים בו שוב. בסוף קוראים ל-setImageResource עם המזהה במיקום הנתון ומחזירים את ה-ImageView.
5. חיבור באקטיביטי: מאתרים את ה-GridView ומפעילים setAdapter(new AnimalsAdapter(this)).
6. לחיצה: מוסיפים ImageView ל-layout ורושמים setOnItemClickListener על ה-GridView, כמו ב-ListView. ב-onItemClick ממירים את ה-view שהתקבל ל-ImageView, לוקחים ממנו getDrawable() ומציבים אותו ב-ImageView הנבחר.
שימו לב
- אפשר גם להירשם ללחיצות על ה-ImageViews בתוך ה-Adapter ולדווח אותן החוצה, אך בשיעור בחרו בדרך הפשוטה.
אחרי השיעור אפשר להציג פריטים בגריד, להגדיר עמודות ומרווחים, ולזהות איזה פריט נלחץ.
השיעור הבא בקורס: Spinner

פרקי ההרצאה: Grid View

  1. 00:00

    מהו GridView ותצוגת שורות ועמודות

  2. 00:40

    רוחב עמודה ומספר עמודות

  3. 01:19

    AutoFit ומרווחים בין הפריטים

  4. 02:33

    אדפטר שיורש מ-BaseAdapter

  5. 03:21

    מערך מזהי התמונות

  6. 04:27

    מימוש getCount ו-getView

  7. 05:29

    מחזור רכיבים עם convertView

  8. 06:29

    קונסטרקטור שמקבל Context

תמלול ההרצאה: Grid View

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

  1. 00:01

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

  2. 00:19

    בואו נראה איך אנחנו יכולים לעבוד איתו בכדי להציג פריטים בגריד. אז בואו נבנה grid view, נגדיר לו match parent, אפשר לסגור את התגית בצורה כזאת ובואו ניתן לו ID כי אנחנו רוצים להתייחס אליו בקוד ה-Java נקרא לו grid view ונציג Animals גם כאן רשימת החיות שהצגנו מקודם מה אנחנו צריכים להגדיר

  3. 00:48

    לו דבר ראשון מה רוחב של כל עמודה כמה עמודה תופסת column width בואו ניתן בואו נניח 90 dp לאחר מכן כמה עמודות אנחנו רוצים num columns אנחנו יכולים להגדיר לדוגמה 2 שימו לב שהוא מציג לנו את זה פה בתצוגה כשתיים, שלוש, ארבע עמודות, כמה אנחנו רוצים להגדיר.

  4. 01:13

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

  5. 01:22

    דבר נוסף שאנחנו יכולים להגדיר זה פשוט auto fit, ואז הוא יתאים את זה אוטומטית למכשיר של היוזר. אז בואו נישאר על auto fit.

  6. 01:32

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

  7. 02:01

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

  8. 02:20

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

  9. 02:34

    אז מה שאנחנו רוצים לבנות זאת מחלקה של אדפטר. בואו נוסיף מחלקה ונקרא לה image adapter, נקרא לה בעצם animals adapter ואנחנו רוצים לרשת את בייס האדפטר.

  10. 02:55

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

  11. 03:27

    אז בואו ניתן לו r.drawable. ונתחיל לתת את התמונות השונות שיש. בואו נשכפל את זה, יש לנו סך הכל 10 תמונות 23456789SL יש לנו יש לנו את הזיקית, יש לנו את הדיר, דאקלינג, ברווזון, יש לנו אלפנט, שי גראף, קיטן, ינשוף, פנדה ופאפי.

  12. 04:12

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

  13. 04:44

    וב-getItemID אנחנו לא צריכים לממש אנחנו יכולים בשביל שיהיה לנו עוד פונקציונליות להחזיר את האובייקט בפוזישן מסוים או להחזיר איזשהו ID שאמור להיות ID של שורה אנחנו לא ממש צריכים לממש אותם אבל את get view אנחנו צריכים לממש ו-get view מה שהיא עושה זה מחזירה את הפריט שאנחנו צריכים להכניס בתוך כל אחד מהתאים של הגריד view אז מה שאנחנו רוצים לעשות זה להחזיר אובייקט מסוג image view בשביל לשתול

  14. 05:18

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

  15. 05:46

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

  16. 06:01

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

  17. 06:39

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

  18. 07:11

    בואו נגדיר image view set

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

ההרצאה הקודמת: Recycler View - Click Registrations

ההרצאה הבאה: Spinner

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

  • Bootstrap Grid
  • VIEW עם Check
  • Debug View
  • יצירת טבלה עם CSS & Grid

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

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