В текущем коде проблема заключается в том, что вы используете `ContentScale.Crop` для изображения, что приводит к обрезанию картинки до размеров экрана. Для достижения плавного движения фона, вам нужно использовать `ContentScale.FillBounds`, а также внести некоторые изменения в код анимации.
Вот исправленный код:
```kotlin
@Composable
fun MoveBackground(){
Box(modifier = Modifier.fillMaxSize()){
val startOffsetY = -10000f
val endOffsetY = 1f
val offsetYAnimate = remember { Animatable(startOffsetY ) }
LaunchedEffect(true) {
offsetYAnimate.animateTo(
targetValue = endOffsetY,
animationSpec = infiniteRepeatable(
animation = tween(1000, easing = LinearEasing),
repeatMode = RepeatMode.Restart
)
)
}
Image(
painter = painterResource(id = R.drawable.background_lvl_1),
contentDescription = null,
contentScale = ContentScale.FillBounds,
modifier = Modifier
.offset(y = offsetYAnimate.value.dp)
.fillMaxSize()
)
}
}
```
В этом коде мы используем `ContentScale.FillBounds`, чтобы изображение заполнило весь экран с сохранением пропорций. Мы также используем `infiniteRepeatable` для задания бесконечной анимации движения фона вниз. Каждый раз, когда анимация завершается (за 1000 миллисекунд), она снова запускается с начала.
Обратите внимание, что `Animatable` и `LaunchedEffect` являются частями новой версии Jetpack Compose (Compose 1.0.0 и выше). Если вы используете более раннюю версию, вам может потребоваться обновить вашу версию Compose.