Предварительная нагрузка катушки Jetpack ComposeAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Предварительная нагрузка катушки Jetpack Compose

Сообщение Anonymous »

Я хочу загрузить изображение на спаш-экран, чтобы можно было установить результат запроса на фон на других экранах с помощью катушки, но мне не удалось полностью реализовать это в катушке. Как я могу сохранить результат запроса катушки в Cahce и использовать этот результат на других экранах?
Заставка

Код: Выделить всё

val imageLoader = ImageLoader.Builder(this)
.memoryCache {
MemoryCache.Builder(this)
.maxSizePercent(0.25)
.strongReferencesEnabled(true)
.build()
}

.diskCache {
DiskCache.Builder()
.directory(this.cacheDir.resolve("image_cache"))
.maxSizePercent(0.02)
.build()
}
.build()
и я использовал это на заставке

Код: Выделить всё

    val context = LocalContext.current
val request = ImageRequest.Builder(context)
.memoryCacheKey(Constants.Cache.BACKGROUND_IMAGE_KEY)
.data("https://www.example/image1.jpg")
.target(
onSuccess = {
viewModel.skipImageRequest()
},
onError = {
viewModel.skipImageRequest()
}
)
.build()
imageLoader.enqueue(request)
на другом экране, где я хочу использовать изображение

Код: Выделить всё

@Composable
fun BackgroundImage(
model: Any?,
contentDescription: String? = "",
modifier: Modifier = Modifier.fillMaxSize(),
//placeholder: Painter? = painterResource(R.drawable.bg_placeholder),
error: Painter? = painterResource(R.drawable.bg_placeholder),
fallback: Painter? = painterResource(R.drawable.bg_placeholder),
alignment: Alignment = Alignment.Center,
contentScale: ContentScale = ContentScale.FillBounds
) {
AsyncImage(
model = ImageRequest.Builder(LocalContext.current)
.data("https://www.example/image1.jpg")
.placeholderMemoryCacheKey(Constants.Cache.BACKGROUND_IMAGE_KEY)
.build(),
contentDescription = contentDescription,
modifier = modifier,
//placeholder = placeholder,
error = error,
fallback = fallback,
alignment = alignment,
contentScale = contentScale,
)
}
Всегда возникает проблема: изображение-заполнитель отображается при инициализации страницы. Мне не удалось создать структуру, в которой заполнитель не виден, пока изображение загружается, а изображение читается и используется. прямо из кэша.
Буду очень рад, если поддержите

Подробнее здесь: https://stackoverflow.com/questions/714 ... il-preload
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»