사용자 도구

사이트 도구


android:rememberasyncimagepainter
rememberasyncimagepainter

소개

rememberAsyncImagePainter 함수는 이미지파일을 불러 올 때 쓰는 함수이다.

rememberImagePainter 함수는 Deprecated 되었으니, 이걸 대신쓰자.

coil 라이브러리에 포함되어 있다.

임포트

다음과 같이 불러와 줘야 한다.

import coil.compose.rememberAsyncImagePainter

이미지 경로 저장하는 함수 만들기

다음과 같이 만든다.

    val imageUri = rememberSaveable { mutableStateOf("") }
    val painter = rememberAsyncImagePainter(
        if (imageUri.value.isEmpty())
            R.drawable.ic_user
        else
            imageUri.value
    )

활용하기

다음은 예시 코드이다.

@Composable
fun ProfileImage()
{
    val imageUri = rememberSaveable { mutableStateOf("") }
    val painter = rememberAsyncImagePainter(
        if (imageUri.value.isEmpty())
            R.drawable.ic_user
        else
            imageUri.value
    )
 
    val launcher = rememberLauncherForActivityResult(contract = ActivityResultContracts.GetContent(),
        )
    {
        uri : Uri? ->
        uri?.let { imageUri.value = it.toString()}
    }
 
    Column (modifier = Modifier
        .padding(8.dp)
        .fillMaxWidth(),
        horizontalAlignment = Alignment.CenterHorizontally)
    {
        Card(shape = CircleShape, modifier = Modifier
            .padding(8.dp)
            .size(100.dp))
        {
            Image(painter = painter, contentDescription = null,
                modifier = Modifier
                    .wrapContentSize()
                    .clickable { launcher.launch("image/*")},
                contentScale = ContentScale.Crop)
        }
        Text(text = "Change Profile Picture")
    }
}
로그인하면 댓글을 남길 수 있습니다.

android/rememberasyncimagepainter.txt · 마지막으로 수정됨: 2024/07/28 02:51 저자 이거니맨