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)。