본문 바로가기
개발/Compose

(Compose) Image

by DinoDev 2025. 7. 29.
728x90
반응형

Jetpack Compose에서 이미지를 화면에 표시할 때 사용하는 Image 컴포넌트에 대해 소개합니다.

앱을 만들 때 사진, 그림, 아이콘 등을 보여주는 건 거의 필수 기능인데요, Compose에서는 이 과정을 어떻게 처리할 수 있을지 알아보겠습니다.

Image 컴포넌트란?

Image는 단순히 말해 화면에 비트맵, 벡터, URL로 불러온 이미지 등을 보여주는 UI 컴포넌트입니다.

Compose에서는 painter라는 개념을 이용해 이미지를 그리는데, 로컬 리소스뿐만 아니라 네트워크 이미지도 손쉽게 사용할 수 있습니다.

Image(
    painter = painterResource(id = R.drawable.sample_image),
    contentDescription = "샘플 이미지"
)

크기와 스타일 설정

Modifier를 이용하면 크기나 스타일을 쉽게 변경할 수 있습니다.

Image(
    painter = painterResource(id = R.drawable.sample_image),
    contentDescription = "샘플 이미지",
    modifier = Modifier
        .size(120.dp)
        .clip(CircleShape)
        .border(2.dp, Color.Gray, CircleShape)
)

네트워크 이미지 불러오기

로컬 리소스뿐만 아니라 URL로 이미지를 불러오기 위해서는 Coil과 같은 Image Loader 라이브러리를 사용해야 합니다.

AsyncImage(
    model = "<https://example.com/image.jpg>",
    contentDescription = "네트워크 이미지",
)

https://github.com/coil-kt/coil

contentScale로 이미지 맞추기

이미지를 영역에 어떻게 채울지 결정하는 속성은 contentScale입니다.

XML에서 ImageView의 scaleType과 동일한 속성입니다.

  • ContentScale.Crop: 영역을 꽉 채우도록 잘라서 보여주기
  • ContentScale.Fit: 이미지 전체를 맞추되 비율 유지
  • ContentScale.FillBounds: 비율 무시하고 영역에 딱 맞추기
Image(
    painter = painterResource(id = R.drawable.sample_image),
    contentDescription = null,
    contentScale = ContentScale.Crop,
    modifier = Modifier.size(150.dp)
)

블로그 글에 대해 궁금한 점이 있다면 아래 카카오톡 오픈채팅에 들어와서 질문해주세요

 

Android Kotlin Compose QnA

 

open.kakao.com

 

728x90
반응형

'개발 > Compose' 카테고리의 다른 글

(Compose) @Preview  (2) 2025.08.04
(Compose) Row, Column  (2) 2025.07.30
(Compose) Button  (2) 2025.07.29
(Compose) Text  (0) 2025.07.28
(Compose) Compose 소개  (3) 2025.07.24