Как использовать анимированный векторный рисунок в Compose

#android #android-jetpack-compose

Вопрос:

Я создал свою векторную рисованную анимацию и хочу использовать ее в композиции. Я нашел в официальной документации, что мне нужно позвонить animatedVectorResource . Но все AnimatedImageVector было удалено из compose до следующих версий. Как запустить анимированную рисовку в текущей версии compose?

Ответ №1:

AnimatedImageVector был временно удален, 1.0.0-rc01 и его нет в конечной конюшне 1.0.0 .

Начиная с 1.1.0-alpha01 AnimatedImageVector и соответствующие API-интерфейсы теперь находятся в новом androidx.compose.animation:animation-graphics модуле.

Вы можете использовать что-то вроде:

     val image = animatedVectorResource(drawableId)
    var atEnd by remember { mutableStateOf(false) }
    Image(
        painter = image.painterFor(atEnd),
        contentDescription = "Your content description",
        modifier = Modifier.size(64.dp).clickable {
            atEnd = !atEnd
        }
    )
 

Ответ №2:

Вам необходимо обновить состав 1.1.0-alpha01 и добавить модуль androidx.compose.animation:animation-graphics , как указано в последнем списке изменений

введите описание изображения здесь

 implementation("androidx.compose.animation:animation-graphics:1.1.0-alpha01")
 
 val image = animatedVectorResource(id = R.drawable.animated_vector)
val atEnd by remember { mutableStateOf(false) }
Icon(
   painter = image.painterFor(atEnd = atEnd),
   contentDescription = null
)