動きに合わせて色をグラデーションさせる
2色間の色の変化を、時間指定ではなく値の変化で動的に行います。
ArgbEvaluator
アニメーションで使いますが、単独でも利用できます。
どこかでインスタンスを生成します。
private ArgbEvaluator mArgbEvaluator = new ArgbEvaluator();
次のメソッドを呼びます。fractionが0だと、startValue, 1だと endValue を返します。第二引数と第三引数のalphaが同じでないと、想定通りの結果が返ってきません。
evaluate(float fraction, Object startValue, Object endValue)
次のように使います。返り値がObjectなので変換します。
(Integer) mArgbEvaluator.evaluate(0, Color.RED, Color.BLUE)
Sample
ListViewのスクロール位置に応じて背景色を変化させます。
ListViewにOnScrollListenerをセットし、onScrollでスクロールした割合を計算します。
@Override
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// first position
if (firstVisibleItem == 0) {
listView.setBackgroundColor((Integer) mArgbEvaluator.evaluate(0, Color.RED, Color.BLUE));
return;
}
float scrollPosition = (firstVisibleItem) / (float)(totalItemCount - visibleItemCount);
listView.setBackgroundColor((Integer) mArgbEvaluator.evaluate(scrollPosition, Color.RED, Color.BLUE));
}

この例だとほぼ無意味ですが、参考のようなViewPagerの背景色や、ScrollViewのスクロールに応じて雰囲気作りに使うなどができるでしょう。
参考
ArgbEvaluator / Android Developers
ValueAnimator で ArgbEvaluator を用いて色をアニメーションで変化させるとき、aaの値について / ikap