Android 中的文本闪烁,使用最简洁的 Kotlin
Text blinking in Android, with most concise Kotlin
我需要让一些文本(目前在 TextView
中)闪烁几秒钟。 how to do it in java here 上有几个答案,但是由于 Kotlin 有一些 java 没有的 syntax/language 特性,我想问的是,您发现让文本在 [=] 上闪烁的最简洁的方法是什么23=] 使用 Kotlin。
虽然我的目标是 fading/smooth 眨眼,但我也愿意接受也会造成不平滑眨眼的方法。
请注意,我也在关注轻量级代码的性能。
感谢您的回答!
为了好玩,你可以定义一个扩展函数:
fun View.blink(
times: Int = Animation.INFINITE,
duration: Long = 50L,
offset: Long = 20L,
minAlpha: Float = 0.0f,
maxAlpha: Float = 1.0f,
repeatMode: Int = Animation.REVERSE
) {
startAnimation(AlphaAnimation(minAlpha, maxAlpha).also {
it.duration = duration
it.startOffset = offset
it.repeatMode = repeatMode
it.repeatCount = times
})
}
并像这样使用它(使用您链接的问题中的示例):
myText.blink(3) // Blink 3 times
yourText.blink() // Just keep blinking
显然,您可以更改参数以适合您的用例。
如需停止动画,请在闪烁视图上调用 clearAnimation()
(上例为 yourText
)。
我需要让一些文本(目前在 TextView
中)闪烁几秒钟。 how to do it in java here 上有几个答案,但是由于 Kotlin 有一些 java 没有的 syntax/language 特性,我想问的是,您发现让文本在 [=] 上闪烁的最简洁的方法是什么23=] 使用 Kotlin。
虽然我的目标是 fading/smooth 眨眼,但我也愿意接受也会造成不平滑眨眼的方法。
请注意,我也在关注轻量级代码的性能。
感谢您的回答!
为了好玩,你可以定义一个扩展函数:
fun View.blink(
times: Int = Animation.INFINITE,
duration: Long = 50L,
offset: Long = 20L,
minAlpha: Float = 0.0f,
maxAlpha: Float = 1.0f,
repeatMode: Int = Animation.REVERSE
) {
startAnimation(AlphaAnimation(minAlpha, maxAlpha).also {
it.duration = duration
it.startOffset = offset
it.repeatMode = repeatMode
it.repeatCount = times
})
}
并像这样使用它(使用您链接的问题中的示例):
myText.blink(3) // Blink 3 times
yourText.blink() // Just keep blinking
显然,您可以更改参数以适合您的用例。
如需停止动画,请在闪烁视图上调用 clearAnimation()
(上例为 yourText
)。