דף הבית
אודות טליה שוורץ
פורומים
מאמרים
צרי קשר
עוד...
כיצד אפשר לשנות צבעו של כפתור כאשר העכבר עומד עליו?
ב-XML של אנדרואיד יש אפשרות של יצירת תצוגות שונות למצבים שונים.
איך עושים זאת?
1. בתקיית ה-drawable יוצרים את קבצי התצוגה (ניתן ליצור כל דבר כולל גרדיאנט)
gradient.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <bitmap android:src="@drawable/YOURIMAGE"/> </item> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="90" android:startColor="#880f0f10" android:centerColor="#880d0d0f" android:endColor="#885d5d5e"/> </shape> </item> </layer-list>
2. יוצרים את תצוגת הכפתור שתלויה בכל מצב (יש המון מצבים ואפשר להוסיף הכל)
button.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/YOURIMAGE" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/gradient" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/gradient" /> <item android:drawable="@drawable/YOURIMAGE" /> </selector>
3. מוסיפים לכפתור את הרקע
"android:background="@drawable/button"
שימי לב:
בהגדרה כזו של כל מצבי הכפתור תוכלי דרך הקוד (JAVA) לשנות את המראה של הכפתור לפי מה שתרצי, כמו לעשות אותו enabled או כל אופציה אחרת...
בהצלחה!
פוקוס טוב במצבים כמו טקסט, כשהמשתמש מתמקד בשדה הטקסט, אז נניח משים לו מסגרת סביב השדה או משהו כזה, לא על כפתור...
pressed - עובד
focused - לא עובד
בסה"כ השתמשתי עם הקוד הזה: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/black"/> <!-- pressed --> <item android:state_focused="true" android:drawable="@color/white"/> <!-- focused --> <item android:drawable="@color/white"/> <!-- default --> </selector>
איפה אני מגדירה את הפונקצייה של הנגיעה? ואיך אני יכולה לבדוק באמולטור שלי אם זה עובד?
באנדאוריד לא משתמשים בפונקציה של מעבר עכבר כי אין עכבר אלא רק נגיעה, לא?!
האם יכול להיות שהוא לא משנה את הצבע כשאני עולה על הכפתור מפני שאני עושה את זה דרך העכבר של המחשב. כי כשאני לוחצת עליו הוא כן משנה ואין לו שגיאה אחרת כלשהיא. האם ידוע לך על כזה דבר?
המילה YOURIMAGE מייצגת כל תמונה שאת רוצה לקשר.....
שימי תמונה או אייקון או קובץ drawable בתקיה המתאימה ובמקום המילה YOURIMAGE תכניסי את הקישור שלה...
<bitmap android:src="@drawable/YOURIMAGE"/>
חני. מה זה ה bitmap שלך תמונה כלשהיא שהיא הרקע לכפתור?
בשמחה!
שימי לב לbutton.xml. תוציאי את זה לתוך הXML שלך זה יראה לך יותר נורמאלי.
ממה מורכב הXML?
יש את ה- Selectore - האבא של העיצוב.
בתוכו יש פריטים (item) כאשר כל פריט הוא מופע של מצב אחר לפי מה שהוא מוגדר ואחד בלי שום מצב (האחרון במקרה שלמעלה), שהוא ברירת המחדל.
כל item מגדיר את העיצוב שלו (android:drawable="@drawable/gradient") ועבור מה הוא מייצג. כמו android:state_focused
אח"כ את יכולה בקוד הגאבה לומר לו focused או משהו כזה ואז הוא יציג לך את העיצוב. כמו כן, נניח שמדובר בEditText כשיהיה ארוע של פוקוס התצוגה תשתנה.
כאן המקום גם להוסיף שהוספת התצוגה היא לכל מיני סוגי פקדים ולא רק כפתור.
תעמדי בXML ותראי את כל האופציות שיש לך.
חני תודה על תשובתך,
אשמח אפ תפרטי קצת יותר מה הכוונה-"תצוגה שתלויה בכל המצבים"
היכן מגדירים זאת?וכיצד?
אפליקציה לפלאפון,
סליחה בנגיעת אצבע!
באיזה סביבת עבודה את עובדת?
android studio?
את בונה אפליקציה לפלאפון? כי אם כן אז יש מגע של אצבע לא עכבר
ב-XML של אנדרואיד יש אפשרות של יצירת תצוגות שונות למצבים שונים.
איך עושים זאת?
1. בתקיית ה-drawable יוצרים את קבצי התצוגה (ניתן ליצור כל דבר כולל גרדיאנט)
gradient.xml
<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <bitmap android:src="@drawable/YOURIMAGE"/> </item> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <gradient android:angle="90" android:startColor="#880f0f10" android:centerColor="#880d0d0f" android:endColor="#885d5d5e"/> </shape> </item> </layer-list>
2. יוצרים את תצוגת הכפתור שתלויה בכל מצב (יש המון מצבים ואפשר להוסיף הכל)
button.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/YOURIMAGE" /> <item android:state_focused="true" android:state_pressed="true" android:drawable="@drawable/gradient" /> <item android:state_focused="false" android:state_pressed="true" android:drawable="@drawable/gradient" /> <item android:drawable="@drawable/YOURIMAGE" /> </selector>
3. מוסיפים לכפתור את הרקע
"android:background="@drawable/button"
שימי לב:
בהגדרה כזו של כל מצבי הכפתור תוכלי דרך הקוד (JAVA) לשנות את המראה של הכפתור לפי מה שתרצי, כמו לעשות אותו enabled או כל אופציה אחרת...
בהצלחה!
פוקוס טוב במצבים כמו טקסט, כשהמשתמש מתמקד בשדה הטקסט, אז נניח משים לו מסגרת סביב השדה או משהו כזה, לא על כפתור...
pressed - עובד
focused - לא עובד
בסה"כ השתמשתי עם הקוד הזה: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@color/black"/> <!-- pressed --> <item android:state_focused="true" android:drawable="@color/white"/> <!-- focused --> <item android:drawable="@color/white"/> <!-- default --> </selector>
איפה אני מגדירה את הפונקצייה של הנגיעה? ואיך אני יכולה לבדוק באמולטור שלי אם זה עובד?
באנדאוריד לא משתמשים בפונקציה של מעבר עכבר כי אין עכבר אלא רק נגיעה, לא?!
האם יכול להיות שהוא לא משנה את הצבע כשאני עולה על הכפתור מפני שאני עושה את זה דרך העכבר של המחשב. כי כשאני לוחצת עליו הוא כן משנה ואין לו שגיאה אחרת כלשהיא. האם ידוע לך על כזה דבר?
המילה YOURIMAGE מייצגת כל תמונה שאת רוצה לקשר.....
שימי תמונה או אייקון או קובץ drawable בתקיה המתאימה ובמקום המילה YOURIMAGE תכניסי את הקישור שלה...
<bitmap android:src="@drawable/YOURIMAGE"/>
חני. מה זה ה bitmap שלך תמונה כלשהיא שהיא הרקע לכפתור?
בשמחה!
שימי לב לbutton.xml. תוציאי את זה לתוך הXML שלך זה יראה לך יותר נורמאלי.
ממה מורכב הXML?
יש את ה- Selectore - האבא של העיצוב.
בתוכו יש פריטים (item) כאשר כל פריט הוא מופע של מצב אחר לפי מה שהוא מוגדר ואחד בלי שום מצב (האחרון במקרה שלמעלה), שהוא ברירת המחדל.
כל item מגדיר את העיצוב שלו (android:drawable="@drawable/gradient") ועבור מה הוא מייצג. כמו android:state_focused
אח"כ את יכולה בקוד הגאבה לומר לו focused או משהו כזה ואז הוא יציג לך את העיצוב. כמו כן, נניח שמדובר בEditText כשיהיה ארוע של פוקוס התצוגה תשתנה.
כאן המקום גם להוסיף שהוספת התצוגה היא לכל מיני סוגי פקדים ולא רק כפתור.
תעמדי בXML ותראי את כל האופציות שיש לך.
בהצלחה!
חני תודה על תשובתך,
אשמח אפ תפרטי קצת יותר מה הכוונה-"תצוגה שתלויה בכל המצבים"
היכן מגדירים זאת?וכיצד?
אפליקציה לפלאפון,
סליחה בנגיעת אצבע!
באיזה סביבת עבודה את עובדת?
android studio?
את בונה אפליקציה לפלאפון? כי אם כן אז יש מגע של אצבע לא עכבר