Con el onStart debería funcionar, el del ViewTreeObserver lo uso cuando necesito alguna medida para configurar la animación, pero el resto de las veces lo hago en onStart
Otra cosa es que esté programando mal la animación.
Pon un botón y pon el código que inicia la animación en el botón, cuando la animación funcione entonces la trasladas a onStart.