
AppCompat) משנה רק את התצוגה בדיזיינר. בהרצה האפליקציה ממשיכה להשתמש ב-theme הכחול הקודם.application, יש android:theme שמפנה ל-style בקובץ styles.xml. ברירת המחדל נקראת AppTheme והיא יורשת מ-Dark ActionBar.colors.xml שדורסים את ברירות המחדל של ה-theme. colorPrimary שולט ב-action bar (בדוגמה סגול), colorPrimaryDark שולט ב-status bar (בדוגמה צהוב), ו-colorAccent שולט בפקדים כמו CheckBox ו-RadioButton (בדוגמה כחול). כאשר סימנו אותם כהערה, ההרצה זהתה למה שבדיזיינר.item עם name של תכונה קיימת, למשל colorBackground, textColorHint או textSize.colors.xml וגדלים ב-dimens.xml, ולהפנות אליהם מה-style. אחרת יש בעיה בהרצה בגלל באג של אנדרואיד. בדוגמה הוגדרו theme_color_background, theme_text_color_hint ו-theme_text_size (30sp). הם חלים על כל האפליקציה, גם בלי סגנון ברכיב.Regular Button Style, עם background, textColor, textSize ו-gravity. במקום להציב אותו בכל לחצן, מוסיפים ב-theme item בשם buttonStyle שמפנה אליו. כך כל הלחצנים מקבלים אותו. מי שדורס כך צריך להגדיר בסגנון גם את שאר התכונות.NoActionBar.הטקסט המלא של הדקות הראשונות בהרצאה «Themes» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
בתחום העיצוב ישנו מונח שנקרא Theme, בעברית זה נקרא ערכת נושא. Theme זה בעצם המכלול הכללי של הצבעים והגופנים והרקעים שקיימים באפליקציה ושנותן לה את החזות הכללית.
באפליקציית האנדרואיד קיים כמובן Theme שאנחנו יכולים להגדיר ולהשתמש בו וכך להראות בגדול איך האפליקציה נראית מבחינת צבעים ומבחינת רקעים.
ברגע שאנחנו פותחים כל הזמן פה אפליקציה באנדרואיד סטודיו אנחנו בעצם רואים שהרקע הוא לבן ושיש לנו פה את האקשן בר בכחול ויש לנו פה מעליו את הסטטוס בר שגם הוא בכחול קצת יותר כהה ועוד כל מיני צבעים שהם כאילו צבעי דיפולט שקיימים באפליקציה.
כל המכלול של הצבעים האלה זה בעצם טים מסוים שמוגדר באפליקציה והטים הזה מגדיר את כל הצבעים והרקעים והגופנים וכדומה אז בואו נראה כמה דברים בנוגע לתים הזה ואיך אנחנו בעצם יכולים אולי לשנות תים או לשלוט בו דבר ראשון כאשר אנחנו מסתכלים על הדיזיינר אז אנחנו רואים שיש לנו פה תים
גם אם אנחנו נבוא לxml אנחנו יכולים לראות כאן שיש תים אז בואו נגיע רגע לדיזיינר ופשוט נלחץ עליו ונראה שיש לנו פה פשוט רשימה מאוד גדולה של תים שונים ואנחנו יכולים לבחור איזשהו טים אחר ולראות שמה שבחרנו באמת משפיע על האפליקציה.
בחרתי כרגע טים שנקרא AppCompat ואני רואה שפתאום הרקע הפך להיות מעין שחור אפור כזה וה-ActionBar הפך להיות שחור וה-StatusBar הפך להיות יותר שחור, שחור יותר כהה אבל אם אנחנו נריץ את האפליקציה אנחנו בעצם לא נראה את הטים הזה אלא נראה את הטים הקודם הכחול הסטנדרטי.
בואו נריץ רגע את האפליקציה. ואנחנו יכולים לראות שכאילו האפליקציה לא קיבלה את השינויים האלה של הטימס. אז למעשה מה שחשוב לנו להבין זה שהבחירה של הטים כאן משפיעה רק על הדיזיינר ולא על האפליקציה עצמה.
אז איפה בעצם ההשפעה של הטים על האפליקציה? אז דבר ראשון זה מגיע מקובץ המניפסט. אם אנחנו נכנסים לקובץ המניפסט אנחנו יכולים לראות כאן שבתגית של האפליקיישן יש הגדרה של איזה טים לקחת עבור כל האפליקציה ב-run time.
האפליקציה באמת רצה ואנחנו רואים שיש פה גישה לקובץ הסטייל שראינו מקודם ואנחנו רואים שיש שם איזשהו הגדרה של סטייל שנקרא up theme אם אנחנו נכנסים לקובץ הסטיילינג אנחנו באמת יכולים לראות שיש פה סטייל ופעם ראשונה אנחנו בעצם רואים ש theme זה פשוט מאוד סטייל שהוא אמור להיות מאוד מאוד נרחב אבל זה סך הכל סטייל רגיל שקיים ברמת האפליקציה הסטייל
הזה בל דיפולט נקרא באפ-תים ואנחנו רואים שהוא יורש איזשהו תים שנקרא Dark Action Bar. התים שמקודם הגדרנו בדיזיינר נקרא AppCompat.
אם אנחנו חוזרים לקובץ הסטיילינג ופשוט מאוד אומרים לו שאנחנו רוצים את AppCompat נריץ ובואו נראה אם באמת השינויים האלה נכנסו לתוקף.
אז הנה אפליקציה רצה ואנחנו רואים שחלק מהם נכנסו לתוקף וחלק לא. האקשן בר עדיין כחול והסטטוס בר כחול קצת יותר, למה? אם הדיזיינר מראה לנו שזה בעצם ה-team, למה בעצם אנחנו לא רואים שהכל נכנס לתוקף?
אז התשובה היא: בגלל זה. מה שאנחנו רואים פה זה בעצם צבעים שדורסים הגדרות מה-team הכללי, וזאת הסיבה שאנחנו בעצם לא מקבלים את ה-team הכללי שהיה שם אל הדריסה שלהם.
בואו רגע נשים את אלה בהערה ונריץ שוב פעם עכשיו למעשה אנחנו יכולים לראות שההגדרה שהוגדרה בדיזיינר באמת זהה להרצה עצמה אז אם אנחנו בוחרים תים כאן זה משפיע רק על הדיזיינר ולא על ההרצה אם אנחנו רוצים לשנות את התים אנחנו יכולים כמובן לבוא לקובץ הסטייל ולבצע את השינוי המתאים בואו רגע נחזיר את זה להגדרות הדיפולטיות
יש לנו כאן את האפטים הדיפולט את זה נוריד לגמרי ונחזיר אותו ונראה עוד כמה דברים בנוגע לזה. הדבר הראשון שאנחנו הולכים לראות זה מה זה בעצם שלושת הצבעים האלה כל הזמן אנחנו רואים אותם שהם קיימים גם בקובץ הסטיילינג והם נלקחים גם מקובץ הקולורס קובץ הקולורס יש לנו את ההגדרה הזאת והסטיילינג
לוקח אותם ודורס צבעים דיפולטיים שקיימים בתים. אז אם אנחנו נשנה אותם אנחנו בעצם נראה איפה בעצם השינוי הזה מתבטא. דבר ראשון מה שנעשה זה נבוא לכאן ונשנה את הצבעים עצמם.
הצבע הראשון נקרא color primary. color primary אחראי על האקשן בר. בואו נשים אותו באיזה סוג של סגול, נחזור בחזרה ונראה שהאקשן בר בעצם הפך להיות סגול.
פולור הבא בתור נקרא color primary dark והוא אחראי על הסטטוס בר. בואו נשים אותו כאיזשהו סוג של צהוב, נחזור בחזרה ונראה שהסטטוס בר איפה שיש לנו את ההגדרות של הסוללה ושל השעה ושל הווי פיי הפך להיות צהוב.
הצבע האחרון שמוגדר לנו בי דיפולט כאן, פולור אקסנט, אחראי על כל מיני צבעים שקשורים לפקדים שונים שקיימים על הדף.
הודעות, פקדים, דברים כאלה. בואו ניגש ונשים פה לדוגמה רכיב צ'קבוקס. נשים פה איזשהו טקסט, נניח איי אגרי, נשים פה איזה מרצ'ין ונגדיר שהוא, אנחנו רואים את הסגול אדום הזה שהוגדר כאן.
בואו נשנה את זה לכחול, חזור בחזרה ונראה שעכשיו צ'קבוקס וגם רדיו בטון ועוד כל מיני רכיבים מסוימים שקיבלו את האקסנט הזה, הופכים להיות כחול ואנחנו רואים את שלושת הצבעים האלה שהם פשוט דרסו הגדרות בטימס והגדירו הגדרות כאלה ואנחנו יכולים לדרוס ולשנות אותם איזה עוד דברים אנחנו יכולים לדרוס בטים
אז דבר ראשון אם אנחנו חוזרים לסטייל אנחנו יכולים לבוא לכאן ולהגדיר צבעים נוספים שאנחנו רוצים לבצע דריסה של ההגדרות הדיפולטיות של הטים אז בכדי לדרוס אז כל מה שאנחנו צריכים לעשות זה לבנות אייטם משלנו ולתת לו name שבעצם דורס איזושהי תכונה שקיימת ב-parent המקורי.
לדוגמה בואו נדרוס את color background וניתן איזשהו color משלנו. נבחר פה איזשהו סוג של אדום כזה. בואו ניגש ונבנה כאן דריסה של לדוגמה טקסט color hint.
בואו ניקח את ה-HintColor וניתן לו תוג של כזה ונדרוס את ה-TextSize לדוגמה וניתן לו 30 SP ועכשיו הערה חשובה בנוגע לזה בכדי שזה באמת יעבוד כמו שצריך בזמן הריצה אנחנו חייבים את ההגדרות האלה לשים בקבצים המתאימים להם לדוגמה Color לשים את זה ב-Colors ו-TextSize לשים את זה ב-Dimensions אחרת תהיה בעיה להציג את זה בזמן הריצה עקב
איזשהו באג מסוים של אנדרואיד אז אין בעיה בואו ניגש לקובץ הצבעים נגדיר כאן color ניתן לו איזשהו שם theme color background ופשוט נגזור נשים פה את ההגדרה ונגיד כאן שההגדרה נמצאת ב-color theme color background הלאה בואו ניקח את הצבע הזה צבע הבא בתור היה TeamTextColorHint ונגדיר שב-Color יש לנו TeamTextColorHint.
ההגדרה הזאת הולכת להיות בקובץ ה-Dimensions. בואו ניקח את הקובץ ה-Defaultי של ה-Dimensions, שני אלה אפשר להיפטר מהם, דיימן, אנחנו רוצים TeamTextSize וזה היה 30 SP. בואו נחזור לכאן, רימנטים טקסט סייז בואו נראה איך זה בעצם
משפיע על החזות של האפליקציה נחזור כבר אנחנו יכולים לראות כאן את הטקסט סייז ואת הבקראונד בואו ניקח טקסט