שאלה בנושא Scaling ומידות של ImageView באנדראויד?

שאלה בנושא Scaling ומידות של ImageView באנדראויד?

שלום לכולם,
כפי שאתם רואים השעה קצת מאוחרת, אבל כשלא הולך כלום אז לא נרדמים :(
אחרי שניסיתי פורומים שונים בחו"ל ונחלתי עצבים ותסכול (כי כשעשיתי חיפוש בפורום פה לגבי אנדרואיד ראיתי שאין שרשורים בנושא), החלטתי בכל זאת לנסות במקום שכמעט תמיד מצאתי בו ישועה (אמן שוב :) )
ImageView באנדרואיד - כשעובדים איתו ב- xml , ראיתי פעמים רבות שעבור הפרמטרים: layout_width או layout_height, שמים באחד מהם את הערך wrap_content ובשני ערך קבוע. בנוסף יש שם ב- ImageView פרמטר שנקרא scaleType, שהמשמעות שלו האם להגדיל/להקטין את התמונה שתיכנס ל-ImageView וגם איך להגדיל/להקטין (האם לשמור על פרופורציות, האם לדאוג שלפחות הרוחב או האורך יהיו בגודל של ה- ImageView וכו').
הכל טוב ויפה מבחינתי כאשר האורך והרוחב של ה- ImageView הינם ערכים קבועים, ולתוך ערכים אלה התמונה תבצע את פעולת ה-scale.
ה-ב-ע-י-ה מתחילה כאשר אחד מהערכים של ה- ImageView שווה ל- wrap_content. לא כל כך ברור לי, מה המשמעות (ואכן יש משמעות) של ה- scaleType, הרי כששמים ערך של wrap_content ב- ImageView אנחנו בעצם אומרים ל- ImageView להתאים את עצמו (באורך או ברוחב) ל- Image עצמו, אז איזה scale בדיוק צריך להתבצע פה? יתר על כן יש ל- ImageView פרמטר שנקרא 'adjustViewBounds' , שאמור לדאוג לכך שהכל יראה יפה.
לצערי אני פשוט לא מבין איזה פעולת scale אמורה ה- image לעבור כאשר ה- ImageView אומר wrap_content?
אם זה יעזור אין לי בעיה לצרף לינק לתשובה שקיבלתי בפורום מסויים שלצערי פשוט לא עזרה לי ורק תיסכלה אותי עוד יותר.
יותר מאשמח לכל עזרה אפשרית
 

BravoMan

Active member
אני חושב שאתה שואל שאלה לא כ"כ נכונה.

ראשית, יכולת פשוט לבדוק את ההתנהגות.
&nbsp
שנית - מה אתה בעצם מנסה לעשות? מה הצורך?
אולי אם תסביר את זה, תוכל לקבל תשובה יותר לעניין.
&nbsp
זה שראית שעושים משהו אפשהו באינטרנט, לא אומר שזה הגיוני או נכון.
&nbsp
אני מודה - אין לי מושג איך יתנהג ה-ImageView במקרה שתיארת, ואני אפילו לא בטוח אם ההתנהגות תהיה זהה עבור כל גרסאות Android.
&nbsp
תחושב בטן שלי אומרת, שקודם תתבצע התאמה של תמונה לממד הקבוע, ואז תתבצע התאמה של מה שהוגדר whrap_content, אבל בכנות אין לי כוח עכשיו לנסות את זה, וייתכן שאני טועה ותהיה התנהגות לא מוגדרת.
 
תודה.. ניסיתי לעשות בדיקות ולא הצלחתי להגיע למסקנה

אני פשוט פוגש בקוד של החברה שאני עובד בה (חדש בה), ובהרבה מקומות ברשת מצב שאחד ה- ImageView הוא קבוע והשני wrap_content, ומה שלא ניסיתי לעשות כדי להבין את המצב הלא ברור הזה (שנהיה ממש לא ברור כאשר מוספים scaleType ו- adjustViewBounds) לא הצליח. בעיקרון שוב מנסה להבין את הצורך, למה לעשות כזה דבר ומה יולידו התוצאות ולא מצליח (למרות שניסיתי.. לצערי יש לי קצת בעיות בתחומי הגרפיקה, אובחנו כבר בילדות :( ). מבין שהשאלה הזאת היא לא ממש כיפית להתעסקות ולכן מבין שאין לאחרים כוח לנסות :)
הכל טוב תודה רבה!
 

BravoMan

Active member
אם אתה חדש בחברה, מומלץ להעזר כמה שיותר במי שוותיק.

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

ובטח לא לאחד כמוני שלוקח לו לא מעט זמן להבין..
הבעיה אני לא אוטודידקט וחסר כישורים ללמוד ולהבין מהאתר של אנדראויד :(
כנראה בחרתי בתחום לא שלי..
תודה רבה ושנדע כולנו ימים טובים יותר
 

BravoMan

Active member
אין לי מושג למה אתה קורא "הייטק", אבל בכל חברת תוכנה נהוג

לחפוף עובדים חדשים.
&nbsp
זה בגדר חובה.
&nbsp
כמובן, לא ילמדו אותך תכנות Android מ-0, אבל בהחלט חייבים להסביר לך דברים בקשר לקוד של מוצרים של החברה עצמה שאתה אמור לעבוד עליהם.
אם הם לא עושים זאת, הם תוקעים לעצמם מקלות בגלגלים ופוגעים בחברה אפילו יותר משהם פוגעים בך.
&nbsp
האם החלטת על דעת עצמך שאין להם זמן או שניסית לשאול ונפנפו אותך?
&nbsp
אם זה הראשון, אתה עושה טעות חמורה, ואם זה השני, ממליץ בחום לדבר עם המנהל הישיר שלך.
&nbsp
אני עובד בפיתוח מובייל כבר 16 שנה (עוד לפני שקראו לזה "מובייל"), ומעולם לא ראיתי חברה שפויה זורק מתכנת חדש לקוד של מוצר קיים בלי שיוכל לשאול ולהתייעץ.
&nbsp
לא יודע אם התחום מתאים לך, אבל אולי נפלת על חברה לא כ"כ טובה.
גם זו אפשרות.
 
מנסים לעזור אבל אני מניח שבתור עובד ותיק אתה מבין שלפעמים

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