我有一个TextView
,它根据SeekBar
给出的值改变颜色:
if ((inOne >= 70 && inOne <= 90) && (inTwo >= 40 && inTwo <= 60)) {
tvRes.setText("LOW");
tvRes.setBackgroundColor(Color.parseColor("#73539E"));
rlO.setBackgroundColor(Color.parseColor("#9973539E"));
}
if ((inOne >= 70 && inOne <= 90) && (inTwo >= 61 && inTwo <= 80)) {
tvRes.setText("IDEAL");
tvRes.setBackgroundColor(Color.parseColor("#679800"));
rlO.setBackgroundColor(Color.parseColor("#99679800"));
}
if ((inOne >= 70 && inOne <= 90) && (inTwo >= 81 && inTwo <= 90)) {
tvRes.setText("PRE-HIGH");
tvRes.setBackgroundColor(Color.parseColor("#967400"));
rlO.setBackgroundColor(Color.parseColor("#99967400"));
}
inOne
和inTwo
是SeekBar
值。
它可以100%工作,没有任何问题。我想做的不仅仅是改变颜色,我希望它动画淡入淡出从一种颜色到另一种颜色。我怎样才能实现它?
我正在看这个例子:SO 例子不太清楚。
我最近制作了一个辅助类来在颜色之间进行动画处理,你可以在这里找到它。也许它可以有一些用处?
至于如何使用它,它与其他动画师的用法非常相似:
ColorAnimator.ofColor(view, "color", Color.BLACK, Color.WHITE).start();
对于背景颜色,请使用 ViewBackgroundWrapper(编辑或新的方便方法):
ColorAnimator.ofBackgroundColor(tvRes, Color.parseColor("#679800")).start();
这将对代码段中的第一个背景色进行动画处理。