淡入淡出的字符串列表
Fading List Of Strings In and Out
我是 android 开发的新手,但目前正在开发应用程序。在我的登录页面上,我想让一系列字符串淡入淡出,然后一个接一个地淡出。我一直在尝试使用 AlphaAnimation 并将其重复模式设置为 REVERSE 但我无法弄清楚如何在列表中的元素已经淡入然后淡出后更改文本。如有任何帮助,我们将不胜感激。
基本上,我认为这个问题存在于 onAnimationRepeat() 函数中,我最终更改了 TextView 的文本。由于 onAnimationRepeat() 函数会使文本淡出,我想我需要等待文本淡出后再更改文本。我是否需要一个 for 循环来遍历字符串列表和 运行 每个字符串上的动画?
查看下面的当前代码:
private fun animateLoginBanner() {
var index = 0
val bannerText = resources.getStringArray(R.array.login_banner)
val anim: Animation = AlphaAnimation(0.0f, 1.0f)
anim.duration = 1000
anim.startOffset = 1000
anim.repeatCount = bannerText.size - 1
anim.repeatMode = Animation.REVERSE
anim.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(animation: Animation?) {
textView.text = bannerText[index]
}
override fun onAnimationEnd(animation: Animation?) {}
override fun onAnimationRepeat(animation: Animation?) {
index += 1
textView.text = bannerText[index]
}
})
textView.startAnimation(anim)
}
未经测试,但也许您可以在侦听器中切换布尔值。您还需要将重复次数加倍。
anim.setAnimationListener(object : Animation.AnimationListener {
var isReversing = false
override fun onAnimationStart(animation: Animation?) {
textView.text = bannerText[index]
}
override fun onAnimationEnd(animation: Animation?) {}
override fun onAnimationRepeat(animation: Animation?) {
isReversing = !isReversing
if (!isReversing) {
index += 1
textView.text = bannerText[index]
}
}
})
我是 android 开发的新手,但目前正在开发应用程序。在我的登录页面上,我想让一系列字符串淡入淡出,然后一个接一个地淡出。我一直在尝试使用 AlphaAnimation 并将其重复模式设置为 REVERSE 但我无法弄清楚如何在列表中的元素已经淡入然后淡出后更改文本。如有任何帮助,我们将不胜感激。
基本上,我认为这个问题存在于 onAnimationRepeat() 函数中,我最终更改了 TextView 的文本。由于 onAnimationRepeat() 函数会使文本淡出,我想我需要等待文本淡出后再更改文本。我是否需要一个 for 循环来遍历字符串列表和 运行 每个字符串上的动画?
查看下面的当前代码:
private fun animateLoginBanner() {
var index = 0
val bannerText = resources.getStringArray(R.array.login_banner)
val anim: Animation = AlphaAnimation(0.0f, 1.0f)
anim.duration = 1000
anim.startOffset = 1000
anim.repeatCount = bannerText.size - 1
anim.repeatMode = Animation.REVERSE
anim.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(animation: Animation?) {
textView.text = bannerText[index]
}
override fun onAnimationEnd(animation: Animation?) {}
override fun onAnimationRepeat(animation: Animation?) {
index += 1
textView.text = bannerText[index]
}
})
textView.startAnimation(anim)
}
未经测试,但也许您可以在侦听器中切换布尔值。您还需要将重复次数加倍。
anim.setAnimationListener(object : Animation.AnimationListener {
var isReversing = false
override fun onAnimationStart(animation: Animation?) {
textView.text = bannerText[index]
}
override fun onAnimationEnd(animation: Animation?) {}
override fun onAnimationRepeat(animation: Animation?) {
isReversing = !isReversing
if (!isReversing) {
index += 1
textView.text = bannerText[index]
}
}
})