我有一个滚动视图,当用户滚动它时,我想慢慢地逐渐改变背景颜色。如何实现以下目标?
答案 0 :(得分:1)
使用NestedScrollView
并附加一个OnScrollChangeListener
。然后将其与ARGBEvaluator
组合以生成颜色,并设置您的背景。我要从记忆中走出来,但是像这样:
final ArgbEvaluator evaluator = new ArgbEvaluator();
final colorStart = Color.GREEN;
final colorEnd = Color.BLUE;
nestedScrollView.setOnScrollChangedListener((view, scrollX, scrollY, oldX, oldY) -> {
final float height = (float) v.getHeight();
if(height <= 0) return;
final float progress = (float)((float)scrollY/v.getHeight());
background.setBackgroundColour((int)evaluator.evaluate(progress, startColor, endColor);
});