我一直在寻找解决问题的方法,但无法解决问题。 我正在开发测验应用程序。我想有4个默认样式的按钮(每个按钮是一个不同的答案)。在单击正确答案后,我希望按钮的颜色变为绿色。如果用户单击了错误的项目,我希望它变为红色。 到目前为止,我所做的是:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
val animator = ObjectAnimator.ofInt(
button,
"backgroundTint",
Color.TRANSPARENT, Color.GREEN) //TODO: How to revert?
animator.duration = 2000L
animator.setEvaluator(ArgbEvaluator())
animator.interpolator = DecelerateInterpolator(2f)
animator.addUpdateListener { animation ->
val animatedValue = animation.animatedValue as Int
button.setBackgroundTintList(ColorStateList.valueOf(animatedValue))
}
animator.start()
} else {
//TODO What else?
}
该代码使我可以根据需要将按钮颜色更改为绿色/红色。但是,我应该怎么做才能还原此更改?更改ObjectAnimator.ofInt()中的颜色顺序,使其在TRANSPARENT处结束,导致按钮透明。以及如何处理LOLLIPOP(19+)以下的API中的这一更改?