更新UI
This commit is contained in:
@@ -2,6 +2,7 @@ package com.aiosman.riderpro.ui.composables
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Bitmap
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.getValue
|
||||
@@ -46,10 +47,12 @@ fun rememberImageBitmap(imageUrl: String, imageLoader: ImageLoader): Bitmap? {
|
||||
@Composable
|
||||
fun CustomAsyncImage(
|
||||
context: Context,
|
||||
imageUrl: String,
|
||||
imageUrl: String?,
|
||||
contentDescription: String?,
|
||||
modifier: Modifier = Modifier,
|
||||
blurHash: String? = null,
|
||||
@DrawableRes
|
||||
placeholderRes: Int? = null,
|
||||
contentScale: ContentScale = ContentScale.Crop
|
||||
) {
|
||||
val imageLoader = getImageLoader(context)
|
||||
@@ -63,30 +66,35 @@ fun CustomAsyncImage(
|
||||
}
|
||||
}
|
||||
|
||||
var bitmap by remember(imageUrl) { mutableStateOf<Bitmap?>(null) }
|
||||
|
||||
LaunchedEffect(imageUrl) {
|
||||
if (bitmap == null) {
|
||||
val request = ImageRequest.Builder(context)
|
||||
.data(imageUrl)
|
||||
.crossfade(true)
|
||||
.build()
|
||||
|
||||
val result = withContext(Dispatchers.IO) {
|
||||
(imageLoader.execute(request) as? SuccessResult)?.drawable?.toBitmap()
|
||||
}
|
||||
bitmap = result
|
||||
}
|
||||
}
|
||||
// var bitmap by remember(imageUrl) { mutableStateOf<Bitmap?>(null) }
|
||||
//
|
||||
// LaunchedEffect(imageUrl) {
|
||||
// if (bitmap == null) {
|
||||
// val request = ImageRequest.Builder(context)
|
||||
// .data(imageUrl)
|
||||
// .crossfade(3000)
|
||||
// .build()
|
||||
//
|
||||
// val result = withContext(Dispatchers.IO) {
|
||||
// (imageLoader.execute(request) as? SuccessResult)?.drawable?.toBitmap()
|
||||
// }
|
||||
// bitmap = result
|
||||
// }
|
||||
// }
|
||||
|
||||
AsyncImage(
|
||||
model = bitmap ?: ImageRequest.Builder(context)
|
||||
model = ImageRequest.Builder(context)
|
||||
.data(imageUrl)
|
||||
.crossfade(true)
|
||||
.crossfade(200)
|
||||
.apply {
|
||||
if (placeholderRes != null) {
|
||||
placeholder(placeholderRes)
|
||||
return@apply
|
||||
}
|
||||
if (blurBitmap != null) {
|
||||
placeholder(blurBitmap.toDrawable(context.resources))
|
||||
}
|
||||
|
||||
}
|
||||
.build(),
|
||||
contentDescription = contentDescription,
|
||||
|
||||
Reference in New Issue
Block a user