IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Animation - récupérer position


Sujet :

Android

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Points : 159
    Points
    159
    Par défaut Animation - récupérer position
    Bonjour,

    Je crée un mini-jeu 2D et commence donc à utiliser les animations.

    Un élément est animé en rotation et j'aimerai stoppé celui-ci lors d'un clic et qu'il conserve cette position.

    Une animation ne modifiant pas la position de l'élément lui-même (celui-ci est fixe, seuls des "pixels" sont en mouvements), comment faire ?

    Mon animation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
     
        <rotate
            android:duration="1500"
            android:fillAfter="true"
            android:fromDegrees="-60"
            android:pivotX="50%"
            android:pivotY="200%"
            android:repeatCount="infinite"
            android:repeatMode="reverse"
            android:startOffset="0"
            android:toDegrees="60" />
     
    </set>
    L'élément en rotation est une ImageView.

    Merci.

  2. #2
    Membre régulier
    Femme Profil pro
    Développeur Java
    Inscrit en
    Août 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2013
    Messages : 61
    Points : 105
    Points
    105
    Par défaut
    tu as ces quelques fonctions que tu peux appeler dans onClick

    tavue.getMatrix();
    tavue.getRotation();
    tavue.getPivotX();
    etc...

    juste une piste jamais testé moi même, mais ça semble allez plus ou moins dans la direction de ce que tu cherches. Après est ce que toutes ramènent bien l'état de l'image en fonction de l'animation, ou son état initial.. ce sera à toi de me le dire !!

    Bon courage

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Points : 159
    Points
    159
    Par défaut
    Premier point, ces fonctions ne sont dispo qu'à partir de l'API 11, ce qui ne me convient pas.
    Second point, cela ne retourne pas la position de l'animation mais bien de l'objet.

    Quelle solution faut-il mettre en place pour gérer facilement un jeu 2D dont les seuls besoins sont les rotations, translations et zoom ?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Points : 159
    Points
    159
    Par défaut
    J'ai décidé de changer de procédé car cela me paraissait difficile, voire impossible.
    Je vais utiliser les canvas (et ça tombe bien, j'ai un script similaire en html5 qui va m'aider à transposer tout ça).

  5. #5
    Membre régulier
    Femme Profil pro
    Développeur Java
    Inscrit en
    Août 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2013
    Messages : 61
    Points : 105
    Points
    105
    Par défaut
    C'est peut être aussi tout simple, on ne sait juste pas le faire
    Bonne chance avec les canvas... si tu trouves quelque chose qui marche hésite pas à venir nous le dire, ça m'intéresse

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    204
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 204
    Points : 159
    Points
    159
    Par défaut
    Les canvas, c'est galère tout de même la première fois qu'on y touche ^^
    Mais j'ai réussi

    Mon petit jeu fonctionne correctement (enfin, je ne l'ai pas encore testé sous différentes config, ce qui me laisse penser que j'aurai encore quelques surprises).

    Encore un peu de mal avec la taille et la résolution de l'écran et celles des images...

    Un canvas.getHeight() par exemple me retourne 480 (la hauteur en position paysage sur mon SII), un bitmap.getHeight() me retourne la taille de mon image que je veux centrer dans le canvas, il me donne 450.
    Logiquement, il y a donc une marge de 30 (je n'ai pas de barre de titre), mais l'image apparait plus grande en hauteur que la résolution (alors que sur la largeur cela fonctionne).
    A voir ce que ça va donner sur d'autres résolutions... mais c'est un autre sujet.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2013
    Messages : 20
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    Pour déplacer des objets, vous pouvez utiliser la Class Drawable avec toutes les Class filles.

    Un Drawable peut prendre n'importe quelle forme, image, élément géométrique classique, élément moins basique, et on peut en modifier sa position sur l'écran, sa rotation ect ...

    La rotation sera à gérer dans le Canvas dans la méthode ondraw(canvas). Avec simplement un :
    canvas.save;
    canvas.rotate(MonDrawable.getRotation()) ;
    canvas.restore();

    La rotation est simplement comprise dans ta classe fille de Drawable.

Discussions similaires

  1. Récupérer position du curseur
    Par france38 dans le forum x86 32-bits / 64-bits
    Réponses: 0
    Dernier message: 13/01/2010, 11h54
  2. [Débutant] Récupérer position Form
    Par Michel Hubert dans le forum VC++ .NET
    Réponses: 1
    Dernier message: 20/12/2006, 09h13
  3. [VBA-E]Récupérer position cellule
    Par 0xYg3n3 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 18/04/2006, 12h14
  4. [C#] récupérer position objet créé en mode design
    Par gdkenny dans le forum ASP.NET
    Réponses: 9
    Dernier message: 16/03/2006, 09h49
  5. [PDE] Récupérer position du curseur dans un éditeur
    Par simsky dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 05/07/2005, 15h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo