¿Cómo cambio el color del icono de la pestaña seleccionada de TabLayout?

Estoy usando unTabLayout con unViewPager y me pregunto cómo puedo cambiar de manera más eficiente el color del icono de la pestaña seleccionada en TabLayout.

Una referencia perfecta de cómo se implementa esto esAplicación de Youtube de Google. En la página principal, hay cuatro íconos de color gris oscuro. Cuando se selecciona una pestaña específica, el icono de la pestaña se vuelve blanco.

Sin bibliotecas de terceros., ¿cómo puedo lograr el mismo efecto?

Aparentemente, una posible solución es con selectores. Pero en ese caso, tendría que encontrar una versión blanca y una gris del ícono y luego cambiar el ícono cuando la pestaña se seleccione o deseleccione. Me pregunto si hay un método más efectivo en el que pueda resaltar el color del icono o algo así. No he podido encontrar esto en ningún tutorial.

EDITAR

La solución que menciono directamente arriba requiere el uso de dos elementos extraíbles para el icono de cada pestaña. Me pregunto si hay una manera de hacerlo programáticamente conUNO dibujable para el icono de cada pestaña.

Respuestas a la pregunta(12)

Su respuesta a la pregunta