===== 소개 =====
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")
}
}