Я бы рекомендовал посмотреть на этот связанный вопрос: с помощью gradientDrawable с более чем тремя цветами
Используя объект LinearGradient , вы можете определить градиент с использованием нескольких цветов и процентных остановок.
Например (заимствованный из вопроса, который я связал):
LinearGradient linearGradient = new LinearGradient(0, 0, width, height,
new int[] {
0xFF1e5799,
0xFF207cca,
0xFF2989d8,
0xFF207cca }, //substitute the correct colors for these
new float[] {
0, 0.40f, 0.60f, 1 },
Shader.TileMode.REPEAT);
Вопрос, который я связал, и официальная документация содержит более подробную информацию о том, как его использовать.