Wczytuję obrazy

Ładowanie obrazu z dysku

Aby wyświetlić grafikę na ekranie, użyj funkcji kompozycyjnej Image. Aby wczytać z dysku obraz (np. PNG, JPEG, WEBP) lub zasób wektorowy, użyj interfejsu API painterResource wraz 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 mieć pewność, że Twoja aplikacja jest dostępna, podaj contentDescription dla elementów wizualnych na ekranie. TalkBack odczytuje opis treści, więc musisz zadbać o to, aby tekst odczytywany na głos i przetłumaczony miał dla Ciebie odpowiednie znaczenie. 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 służy tylko do dekoracji wizualnej, ustaw contentDescription na null, aby czytnik ekranu go ignorował.

Jeśli potrzebujesz funkcji ImageBitmap na niższym poziomie, możesz użyć funkcji 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 do rysowania:

Wczytywanie obrazu z internetu

Obraz możesz wczytać z internetu, jeśli możesz skorzystać z kilku bibliotek zewnętrznych. 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 wczytać obraz za pomocą narzędzia Coil z Instacart, dodaj bibliotekę do pliku Gradle i użyj AsyncImage do wczytywania obrazu 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 do ładowania obrazów na Androida, która zapewnia płynne przewijanie (Google).