android:rememberasyncimagepainter
rememberasyncimagepainter
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
android:rememberasyncimagepainter [2024/07/28 02:13] – 만듦 이거니맨 | android:rememberasyncimagepainter [2024/07/28 02:51] (현재) – 예시 이거니맨 | ||
---|---|---|---|
줄 33: | 줄 33: | ||
imageUri.value | imageUri.value | ||
) | ) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== 활용하기 ===== | ||
+ | |||
+ | 다음은 예시 코드이다. | ||
+ | |||
+ | <code kotlin> | ||
+ | @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, | ||
+ | .padding(8.dp) | ||
+ | .size(100.dp)) | ||
+ | { | ||
+ | Image(painter = painter, contentDescription = null, | ||
+ | modifier = Modifier | ||
+ | .wrapContentSize() | ||
+ | .clickable { launcher.launch(" | ||
+ | contentScale = ContentScale.Crop) | ||
+ | } | ||
+ | Text(text = " | ||
+ | } | ||
+ | } | ||
</ | </ |
android/rememberasyncimagepainter.1722100439.txt.gz · 마지막으로 수정됨: 2024/07/28 02:13 저자 이거니맨