我试图让一个 TextView 以一个名为“interval”的变量(整数值表示毫秒)指定的间隔反转背景和文本颜色。
目前,我为每个属性使用 ObjectAnimator,然后使用 AnimatorSet 对象将它们一起播放。这行得通;但是,我不确定如何摆脱所有的过渡颜色。我不需要平滑过渡,只需要硬闪。我尝试使用 setFrameDelay(interval) 来完成此操作,但这不起作用。
我曾尝试使用单独的线程/可运行文件来执行此操作,但我一直遇到需要在执行另一个操作之前停止线程的问题。我无法让新操作可靠地等待线程停止,因此当时机不正确时,我会得到奇怪的背景和文本覆盖。使用 Android 的动画框架似乎更适合轻松启动和停止。
这是我正在使用的代码:
ObjectAnimator backgroundColorValueAnimator = ObjectAnimator.ofInt(
textView,
"backgroundColor",
Color.BLACK,
Color.parseColor(globalSettings.color)
);
ObjectAnimator textColorValueAnimator = ObjectAnimator.ofInt(
textView,
"textColor",
Color.parseColor(globalSettings.color),
Color.BLACK
);
backgroundColorValueAnimator.setFrameDelay(interval);
textColorValueAnimator.setFrameDelay(interval);
backgroundColorValueAnimator.setRepeatCount(ObjectAnimator.INFINITE);
backgroundColorValueAnimator.setRepeatMode(ObjectAnimator.RESTART);
textColorValueAnimator.setRepeatCount(ObjectAnimator.INFINITE);
textColorValueAnimator.setRepeatMode(ObjectAnimator.RESTART);
globalSettings.invertBackground = new AnimatorSet();
globalSettings.invertBackground.play(backgroundColorValueAnimator).with(textColorValueAnimator);
globalSettings.invertBackground.setDuration(interval);
globalSettings.invertBackground.start();
任何帮助将不胜感激。