Wczytuję obrazy

Ładowanie obrazu z dysku

Aby wyświetlić grafikę na ekranie, użyj komponentu Image. Aby załadować obraz (np. PNG, JPEG, WEBP) lub zasób wektorowy z dysku, użyj interfejsu API painterResource z odwołaniem do obrazu. Nie musisz znać typu zasobu. Wystarczy, że użyjesz wartości painterResource w modyfikatorach Image lub paint.

DrawScope:

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

Aby zapewnić dostępność aplikacji, podaj contentDescription dla elementów wizualnych na ekranie. TalkBack odczytuje opis treści, więc musisz się upewnić, że tekst ma sens, gdy zostanie odczytany na głos i przetłumaczony. W tym przykładzie element stringResource() służy do wczytania przetłumaczonego opisu treści z pliku strings.xml. Jeśli element wizualny na ekranie ma służyć wyłącznie do ozdoby, ustaw contentDescription na null, aby czytnik ekranu go ignorował.

Jeśli potrzebujesz funkcji ImageBitmap niskiego poziomu, możesz użyć ImageBitmap.imageResource() do załadowania pliku Bitmap. Więcej informacji o obrazach typu ImageBitmap znajdziesz w sekcji ImageBitmap a ImageVector.

Obsługa rysowania

painterResource obsługuje obecnie te typy obiektów rysowanych:

Wczytywanie obrazu z internetu

Aby załadować obraz z internetu, możesz skorzystać z kilku bibliotek innych firm. Biblioteki do wczytywania obrazów wykonują za Ciebie wiele ciężkiej pracy. Zajmują się zarówno buforowaniem (dzięki czemu nie musisz pobierać obrazu wielokrotnie), jak i logiką sieciową, aby pobrać obraz i wyświetlić go na ekranie.

Aby na przykład załadować obraz za pomocą komponentu Coil z Instacart, dodaj bibliotekę do pliku gradle i użyj instrukcji AsyncImage, aby załadować obraz z adresu URL:

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

Biblioteka do wczytywania obrazów obsługiwana przez Kotlin Coroutines (Instacart).

Szybka i wydajna biblioteka ładowania obrazów na Androida, która zapewnia płynne przewijanie (Google).

Dodatkowe materiały