2011-08-24 6 views
0

Ce que j'essaie de faire est d'avoir une image de fond, par souci de simplicité, disons que c'est une photo de l'avant d'une maison. Ensuite, je veux faire bouger une boule rouge d'une fenêtre à l'autre.Android: comment avoir une animation sur une image de fond

** Je souhaite avoir une image d'arrière-plan et une image par-dessus.

** Je veux ensuite être en mesure de dire exactement l'image EXACTEMENT où aller.

Comment est-ce que je peux faire ceci? Je commence juste à en apprendre davantage sur les animations sous Android, et je n'ai pas encore rencontré d'autre moyen de le faire.

Répondre

0

Il existe deux voies d'animation dans android: Canvas et OpenGL ES. Je recommanderais OpenGL pour tout ce qui demande de la souplesse et de la vitesse, comme une balle en mouvement. Vous devez créer une vue à l'aide de la classe auxiliaire GLSurfaceView http://android-developers.blogspot.com/2009/04/introducing-glsurfaceview.html et implémenter un Renderer. Je suppose que vous avez les images enregistrées dans vos dossiers res/drawable, dans un format comme png et le fichier de boule contient un canal alpha.

Vous pouvez voir de nombreux tutoriels en ligne, mais vous devez essentiellement charger votre image de fond et votre ressource de balle au onSurfaceCreated et la stocker dans une texture en utilisant GLUtils.texImage2D.

Dans la méthode , vous devez configurer une projection 2D telle que glOrtho2D, puis dessiner l'arrière-plan.

Ensuite, juste avant de dessiner la texture de la balle, vous pouvez utiliser la fonction glTranslate(x,y,0) pour déplacer la balle au-dessus de la maison. Utilisez un mélange alpha pour la balle:

glBlendFunc(GL_SRC_ALPHA, GL_SRC_ONE_MINUS_ALPHA); 
glEnable(GL_BLEND); 

Malheureusement, écrire dans OpenGL n'est pas aussi simple que vous pourriez l'espérer. Tout est fait avec des coordonnées 3D, malgré le fait que vous voulez seulement une image 2D. Mais j'espère que cela vous donne assez d'informations pour google pour de bons exemples, qui sont abondants!

Questions connexes