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") } }