У меня есть список текстовых представлений с алфавитом в линейном макете. когда я касаюсь любого алфавита, я хочу, чтобы волнистая анимация перемещала положение текстовых изображений, как на картинке, которую я дал. Это похоже на полосу прокрутки ящиков приложений Niagra Laucnhers
вот мой код. это дает мне аналогичный эффект, но не плавный, как полоса прокрутки запуска.
Код: Выделить всё
private fun moveTextViewsToLeft1(index: Int) {
val adjacentViews = mutableListOf
>()
val touchedViewTranslationX = -100f
val neighborTranslationX = -80f
val extraNeighborTranslationX1 = -45f
val extraNeighborTranslationX2 = -10f
// Add touched textView
val touchedView = getChildAt(index)
adjacentViews.add(touchedView to touchedViewTranslationX)
// Add top neighbors
for (i in index - 1 downTo 0) {
val view = getChildAt(i)
val translationX = when (index - i) {
1 -> neighborTranslationX
2 -> extraNeighborTranslationX1
3 -> extraNeighborTranslationX2
else -> 0f
}
adjacentViews.add(view to translationX)
}
// Add bottom neighbors
for (i in index + 1 until childCount) {
val view = getChildAt(i)
val translationX = when (i - index) {
1 -> neighborTranslationX
2 -> extraNeighborTranslationX1
3 -> extraNeighborTranslationX2
else -> 0f
}
adjacentViews.add(view to translationX)
}
val animators = mutableListOf()
for ((view, translationXValue) in adjacentViews) {
val animator = ObjectAnimator.ofFloat(view, View.TRANSLATION_X, translationXValue)
animator.duration = ANIMATION_DURATION
animator.interpolator = AccelerateDecelerateInterpolator()
animators.add(animator)
}
val set = AnimatorSet()
set.playTogether(animators as Collection?)
set.addListener(object : Animator.AnimatorListener {
override fun onAnimationStart(animation: Animator) {
isAnimating = true
}
override fun onAnimationEnd(animation: Animator) {
isAnimating = false
}
override fun onAnimationCancel(animation: Animator) {
isAnimating = false
}
override fun onAnimationRepeat(animation: Animator) {}
})
set.start()
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... oid-studio
Мобильная версия