이미지 로드

디스크에서 이미지 로드

Image 컴포저블을 사용하여 화면에 그래픽을 표시합니다. 디스크에서 이미지(예: PNG, JPEG, WEBP) 또는 벡터 리소스를 로드하려면 이미지 참조와 함께 painterResource API를 사용합니다. 애셋 유형을 알 필요는 없습니다. Image 또는 paint 수정자에서 painterResource를 사용하면 됩니다.

DrawScope:

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

앱에 액세스할 수 있도록 하려면 화면의 시각적 요소에 contentDescription을 제공합니다. TalkBack에서 콘텐츠 설명을 읽어 주므로 소리 내 읽고 번역했을 때 텍스트가 의미를 지니는지 확인해야 합니다. 위의 예에서는 stringResource()를 사용하여 strings.xml 파일에서 번역된 콘텐츠 설명을 로드합니다. 화면의 시각적 요소가 순수하게 시각적 장식용인 경우 스크린 리더에서 contentDescriptionnull로 설정하여 무시합니다.

하위 수준의 ImageBitmap 관련 기능이 필요한 경우 ImageBitmap.imageResource()를 사용하여 비트맵을 로드할 수 있습니다. ImageBitmap에 관한 자세한 내용은 ImageBitmap과 ImageVector 비교 섹션을 참고하세요.

드로어블 지원

painterResource는 현재 다음과 같은 드로어블 유형을 지원합니다.

인터넷에서 이미지 로드

인터넷에서 이미지를 로드하는 경우 이 프로세스를 처리하는 데 도움이 되는 서드 파티 라이브러리를 사용할 수 있습니다. 이미지 로드 라이브러리는 여러 까다로운 작업을 처리합니다. 이미지를 다운로드하여 화면에 표시하기 위해 캐싱(이미지를 여러 번 다운로드하지 않아도 됨) 및 네트워킹 로직을 모두 처리합니다.

예를 들어 Instacart에서 Coil로 이미지를 로드하려면 라이브러리를 gradle 파일에 추가하고, AsyncImage를 사용하여 URL에서 이미지를 로드합니다.

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

Kotlin 코루틴에서 지원하는 이미지 로드 라이브러리(Instacart)

부드러운 스크롤에 중점을 두었으며 빠르고 효율적인 Android용 이미지 로드 라이브러리(Google)