Also ich bin auch noch relativ neu in der Thematik - vor allem bezogen auf Apps-Programmierung.
Ich habe mich auch recht lange dafür interessiert und jetzt vor einer Woche meine erste App veröffentlicht
(Evolute - play.google.com/store/apps/details?id=com.crowgames.evolute.evolute).
Wenns um grafisches geht, dass die Grenzen von Knöpfen und Bildern übersteigt (z.B. FlappyBird oder eben Evolute), solltest du dir OpenGL (ES) beibringen.
OpenGL ist was grafisches angeht ultimativ mächtig - ist leider deswegen aber auch etwas schwieriger rein zu kommen.
Ich persönlich besitze OpenGL ES 2 - A Quick-Start Guide von Kevin Brothaler. Das Buch hilft aber vor allem meiner Meinung nach von OpenGL auf OpenGL ES umzusteigen. Mein Weg war erstmal mit OpenGL am PC zu experimentieren (das ist eine einfachere Umgebung) und dann nach einer Weile mich bei Android an die GLSurfaceView zu wagen. Ich würde es auch so empfehlen.
Prinzipiell lernt man das aber auf jeden Fall nicht von heute auf morgen - meine ersten Versuche habe ich noch 100%ig mit Canvas gemacht... und da stecken viele Stunden Arbeit drinnen. Wenn man sich Evolute anschaut, wirkt das ja noch recht einfach, aber das waren (zumindest für mich) 4 Monate Arbeit...
Also das wichtigste ist viel herumexperimentieren und sich nicht entmutigen zu lassen
EDIT:
Mir ist gerade gekommen: Es gibt hier auf Android Pit auch eins der besten und ausführlichen Tutorials, die ich zu dem Thema kenne. Mir persönlich aht das sehr geholfen:
https://www.nextpit.de/de/android/wiki/view/Spieleentwicklung_101
— geändert am 05.03.2015, 12:07:36