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 button click décalée


Sujet :

Android

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut Animation button click décalée
    Bonjour,

    J'ai éffectué ce code sur des Buttons, le problème c'est lorsque je souhaite cliquer sur un bouton, je suis obligé de décaler l'appui sur l'écran par rapport au boutton, y a t-il une solution?:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Animation animationToLeft = new TranslateAnimation(200, -200, 0, 0);
    			animationToLeft.setDuration(20000);
    			animationToLeft.setRepeatMode(Animation.REVERSE);
    			animationToLeft.setRepeatCount(Animation.INFINITE);
     
    Button bt = (Button) findViewById(R.id.ButtonOne);
     
    			bt.setAnimation(animationToLeft);

    Merci.

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    le problème c'est lorsque je souhaite cliquer sur un bouton, je suis obligé de décaler l'appuiX sur l'écran par rapport au boutton
    C'est à dire ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    En fait les boutons se défile de droite à gauche.

    Supposons 2 boutons représenté comme ceci:

    Marge de 20px----Button 1 ----Marge de 20px----Button 2----

    espacé de 20 pixel par exemple le problème, c'est qu'au moment du défilement et que je vise bien le Button 1 , le Button 2 est cliqué au lieu du 1 par contre si je clique sur la marge de 20px à gauche du Button 1 par moment le Button 1 est cliqué.

    Y a t-il un moyen de résoudre ce problème?

    Merci.

  4. #4
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    espacé de 20 pixel par exemple le problème, c'est qu'au moment du défilement et que je vise bien le Button 1 , le Button 2 est cliqué au lieu du 1 par contre si je clique sur la marge de 20px à gauche du Button 1 par moment le Button 1 est cliqué.
    oO , essaye avec cela SetFilter(true) :

    http://developer.android.com/referen...After(boolean)
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    Cela ne change rien.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    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
    16
    17
     
    		Animation animationToLeft = new TranslateAnimation(dm.widthPixels, -dm.widthPixels, 0, 0);
    			animationToLeft.setDuration(20000);
    			animationToLeft.setRepeatMode(Animation.REVERSE);
    			animationToLeft.setRepeatCount(Animation.INFINITE);
    			animationToLeft.setFillAfter(true);
    			animationToLeft.setFillBefore(true);
    			animationToLeft.setFillEnabled(true);
    			Button bt = (Button) findViewById(R.id.ButtonOne);
    			bt.setText(mCursor.getString(mCursor
    					.getColumnIndex("proposition_un")));
    			bt.setAnimation(animationToLeft);
     
    			bt = (Button) findViewById(R.id.ButtonTwo);
    			bt.setText(mCursor.getString(mCursor
    					.getColumnIndex("proposition_deux")));
    			bt.setAnimation(animationToLeft);

  7. #7
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Ca marche avec ce code , ca marche pas ?
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    cela ne marche pas avec ce code.

  9. #9
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    animationToLeft.setRepeatMode(Animation.REVERSE);
    animationToLeft.setRepeatCount(Animation.INFINITE);
    C'est normal ? Car au final avec cette répétition ton widget ne sera jamais au même endroit et du coup je ne sais pas si le listener est capable d'interpréter l'animation en cours .

    Edit :


    http://android-developers.blogspot.f...honeycomb.html

    Finally, the previous animations changed the visual appearance of the target objects... but they didn't actually change the objects themselves. You may have run into this problem. Let's say you want to move a Button from one side of the screen to the other. You can use a TranslateAnimation to do so, and the button will happily glide along to the other side of the screen. And when the animation is done, it will gladly snap back into its original location. So you find the setFillAfter(true) method on Animation and try it again. This time the button stays in place at the location to which it was animated. And you can verify that by clicking on it - Hey! How come the button isn't clicking? The problem is that the animation changes where the button is drawn, but not where the button physically exists within the container. If you want to click on the button, you'll have to click the location that it used to live in. Or, as a more effective solution (and one just a tad more useful to your users), you'll have to write your code to actually change the location of the button in the layout when the animation finishes.

    It is for these reasons, among others, that we decided to offer a new animation system in Honeycomb, one built on the idea of "property animation."
    Tu peux récupérer maintenant à partir des properies de la view sa translation en x et y pour savoir a quelle position est la vue et ainsi comparer à un click (sa position) sur ton layout.

    Tu peux également regarder les ValueAnimator
    http://developer.android.com/referen...eAnimator.html

    Du coup à partir de la honeycomb il y a moyen de pouvoir récupérer la position de l'animation via ces propriété , mais pas avant.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    En dehors de l'utilisation de la classe Animation, y a t-il moyen de faire ce que je souhaites faire avec un autre moyen?

    Pour que cela soit compatible avec des versions antérieurs à 3.0
    Merci.

  11. #11
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Normalement avec la librairie de support tu devrais pouvoir accès à ces fonctionnalités.

    Sinon il faut faire l'animation à la main. Un Canvas serait le plus évident.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    Non ,le support library ne contient pas cette classe. obligé de passer le projet en version 3.0

Discussions similaires

  1. load ascx et button click
    Par topolino dans le forum ASP.NET
    Réponses: 5
    Dernier message: 12/10/2008, 19h49
  2. [C#][asp.NET] Button Click et commande SQL
    Par patricklinden dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/12/2007, 04h38
  3. démarrage animation par click
    Par scallion dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 05/11/2007, 20h00
  4. [VB.NET]Erreur Button Click
    Par D4rkTiger dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/01/2007, 14h47

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