התמונות בטעינה

טעינת תמונה מהדיסק

אפשר להשתמש בקומפוזיציה Image כדי להציג גרפיקה במסך. כדי לטעון תמונה (לדוגמה: PNG, ‏ JPEG, ‏ WEBP) או משאב וקטורי מהדיסק, משתמשים ב-API‏ painterResource עם הפניה לתמונה. לא צריך לדעת את סוג הנכס, פשוט משתמשים ב-painterResource בשינויים Image או paint.

DrawScope:

Image(
    painter = painterResource(id = R.drawable.dog),
    contentDescription = stringResource(id = R.string.dog_content_description)
)

כדי לוודא שהאפליקציה נגישה, צריך לספק contentDescription לרכיבים חזותיים במסך. התכונה TalkBack מקריאה את תיאור התוכן, ולכן חשוב לוודא שהטקסט משמעותי אם הוא מוקרא בקול ומתורגם. בדוגמה שלמעלה, נעשה שימוש ב-stringResource() כדי לטעון את תיאור התוכן המתורגם מהקובץ strings.xml. אם הרכיב החזותי במסך הוא רק קישוט, צריך להגדיר את contentDescription לערך null כדי שקורא המסך יתעלם ממנו.

אם אתם צריכים פונקציונליות ספציפית ברמה נמוכה יותר של ImageBitmap, אתם יכולים להשתמש ב-ImageBitmap.imageResource() כדי לטעון Bitmap. מידע נוסף על ImageBitmap זמין בקטע ImageBitmap לעומת ImageVector.

תמיכה ב-Drawable

painterResource תומך כרגע בסוגים הבאים של רכיבי drawable:

טעינת תמונה מהאינטרנט

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

לדוגמה, כדי לטעון תמונה באמצעות Coil מ-Instacart, מוסיפים את הספרייה לקובץ gradle ומשתמשים ב-AsyncImage כדי לטעון תמונה מכתובת URL:

AsyncImage(
    model = "https://example.com/image.jpg",
    contentDescription = "Translated description of what the image contains"
)

ספרייה לטעינת תמונות שמבוססת על Kotlin Coroutines‏ (Instacart).

ספרייה מהירה ויעילה לטעינת תמונות ב-Android, שמתמקדת בגלילה חלקה (Google).

מקורות מידע נוספים