컬러값을 우측에서 좌로 커튼 치듯이 변하는걸 말씀하시는게 맞다면
간단히 LinearLayout 두개만 가지고도 가능할것 같으네요,
속도 생각을 하면 SurfaceView가 나을것 같고.. 그 외 방법이야 여럿 있을것 같습니다.
이건 어디까지나 생각일 뿐 테스트는 해보지 않았습니다.
저같은 경우에 테스트 용도로 구현해 본다면..
아래와 같이 두 개의 LinearLayout을 가로로 배치하고 weight를 좌 1 우 0으로 준 상태에서
LinearLayout(L) LinearLayout(R) // weight가 1 / 0 이기 떄문에 좌측 레이아웃만 보이고 우측은 안보이는 상태
타이머나 쓰레드 등을 돌려 우측 레이아웃의 weight 값을 증가(좌측은 감소) 시키는 방법도 생각해볼 수 있을 것 같습니다.
물론 색상은 미리 지정해 두셨으면 색상 지정은 할 필요 없이 weight 값만 변경하면 되겠네요