Shader shader1 = new SweepGradient(0, 0, mSpectrumColorsRev, null);
  //Shader shader2 = new LinearGradient(0, 0,SLIDER_WIDTH ,SLIDER_HEIGHT, 0xFFFFFFFF, 0xFF000000, Shader.TileMode.REPEAT);
  Shader shader2 = new LinearGradient(0, 0, SLIDER_WIDTH ,SLIDER_HEIGHT, new int[] { Color.RED, Color.YELLOW, Color.GREEN, Color.CYAN, Color.BLUE, Color.MAGENTA, Color.RED }, null, Shader.TileMode.REPEAT);
  Shader shader3 = new ComposeShader(shader1, shader2, PorterDuff.Mode.SRC_IN);

rectColorSat.setShader(shader3);

우선 이런식으로 직사각형에 컬러 배치해서 보여주는것 부터 하고 있는데요...

다른곳에서 가져온 소스를 조금 변형해서 사용하고 있습니다...

직사각형에 컬러를 수평 배치하여 수직으로는 같은 색이 되게 해야 하는데 위에 소스로는 약간 사선 배치가 되네요...

수직으로 같은색이 되게 하려면 어떻게 해야 하나요..

이와 같은 방법이 아닌 다른 방법으로 해야 할까요?

+)

int colors[] = new int[7];
  colors[0] = Color.RED;
  colors[1] = Color.YELLOW;
  colors[2] = Color.GREEN;
  colors[3] = Color.CYAN;
  colors[4] = Color.BLUE;
  colors[5] = Color.MAGENTA;
  colors[6] = Color.RED;
  GradientDrawable gradDraw;

  gradDraw = new GradientDrawable(Orientation.LEFT_RIGHT, colors);

  gradDraw.setDither(true);
  gradDraw.setLevel(10000);
  gradDraw.setBounds(0, 0, SLIDER_WIDTH, SLIDER_HEIGHT);
  gradDraw.draw(mVerSliderCv);

이런식으로 캔버스에 그려주는걸로 해봤는데 이건 색이 부드럽게 섞이지 않아서 별로네요...