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 :

TranslateAnimation qui va pile poil en haut a droite de l'ecran.


Sujet :

Android

  1. #1
    Membre confirmé
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    Février 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : Février 2017
    Messages : 86
    Par défaut TranslateAnimation qui va pile poil en haut a droite de l'ecran.
    Salut, j'ai écrit ce code dans le but qu'en cliquant sur button1 une animation se deplace en haut a gauche de l'ecran, sauf qu'au final elle sort a droite de l'ecran bien avant d'arriver en haut et je ne comprends pas pourquoi, quelqu'un voit ou est le problème ?

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
     
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.text.Layout;
    import android.util.DisplayMetrics;
    import android.view.View;
    import android.view.animation.Animation;
    import android.view.animation.AnimationUtils;
    import android.view.animation.LayoutAnimationController;
    import android.widget.Button;
    import android.widget.TextView;
    import android.view.animation.*;
     
    import java.util.Random;
     
     
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
     
        Button button1, button2, button3, button4;
        TextView textViewTest;
        Animation animation;
        AnimationSet set;
        float width, height, xTextViewTest, yTextViewTest;
        Random random;
        int[] locationTemp = new int[2];
     
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
     
            button1 = (Button) findViewById(R.id.Button1);
            button2 = (Button) findViewById(R.id.Button2);
            button3 = (Button) findViewById(R.id.Button3);
            button4 = (Button) findViewById(R.id.Button4);
     
            button1.setOnClickListener(this);
            button2.setOnClickListener(this);
            button3.setOnClickListener(this);
            button4.setOnClickListener(this);
     
            textViewTest = (TextView) findViewById(R.id.TextViewTest);
     
     
            set = new AnimationSet(true);
            set.setDuration(3000);
     
            DisplayMetrics metrics = new DisplayMetrics();
            getWindowManager().getDefaultDisplay().getMetrics(metrics);
     
            height = (float) metrics.heightPixels;
            width = (float) metrics.widthPixels;
     
        }
     
        @Override
        public void onClick(View view) {
     
            textViewTest.getLocationOnScreen(locationTemp);
            xTextViewTest = (float) locationTemp[0];
            yTextViewTest = (float) locationTemp[1];
            switch (view.getId()) {
                case R.id.Button1:
                    textViewTest.setText("1");
                    animation = new TranslateAnimation(0f, width - xTextViewTest, 0f, yTextViewTest - height);
                    break;
                case R.id.Button2:
                    textViewTest.setText("2");
                    break;
                case R.id.Button3:
                    textViewTest.setText("3");
                    break;
                case R.id.Button4:
                    textViewTest.setText("4");
                    break;
            }
            set.addAnimation(animation);
            textViewTest.startAnimation(set);
     
        }
    }

  2. #2
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    animation = new TranslateAnimation(0f, width - xTextViewTest, 0f, yTextViewTest - height);
    Ton animation se déplace de la position (0, 0) jusqu'à la position (width-xTextView, height-yTextView)
    Il faut que tu vérifie où se trouve la position (0, 0), sinon elle ne va pas se déplacer comme tu le souhaites. (Désolé je le sais pas mais ça doit se trouver)

    • Si (0, 0) est en bas à gauche, ton animation va bouger en haut à droite
    • Si (0, 0) est en haut à gauche, ton animation va bouger en bas à droite
    • etc...

  3. #3
    Membre confirmé
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    Février 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : Février 2017
    Messages : 86
    Par défaut
    Et bien il me semble que 0,0 ici c'est la position du widget a animé non ?

  4. #4
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    Je ne sais pas, fait des essais avec des valeurs absolu pour voir. (par exemple de (0,0) jusqu'à (100, 100))

    Si c'est effectivement la position du widget, ta destination en X ne doit elle pas être négative pour se déplacer vers la gauche ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    Février 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : Février 2017
    Messages : 86
    Par défaut
    0,0 c'est bel et bien la position du widget et le but est que l'animation aille en haut a droite de l'ecran et non en haut a gauche.

    En l'occurence ça va bien a droite mais ça sort du coté droit de l'ecran largement avant d'arriver en haut. Je ne comprends pas pourquoi

  6. #6
    Membre confirmé
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    Février 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : Février 2017
    Messages : 86
    Par défaut
    Personne n'a une idée ? C'est quand même pas supposé être bien compliqué pourtant, quelque chose m'echappe..

  7. #7
    Membre confirmé
    Homme Profil pro
    Chercheur d'Emploi
    Inscrit en
    Février 2017
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'Emploi

    Informations forums :
    Inscription : Février 2017
    Messages : 86
    Par défaut
    Ca y est j'ai enfin trouvé !!

    Il fallait utiliser la methode .getLocationInWindow() et pas .getLocationInScreen(). Puisqu'en fait j'avais les dimensions de la fenetre et non de l'ecran comme je pensais (merci stackoverflow )

    Le con.. putain 3 jours pour trouver le problème

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de calendar qui remonte ma page en haut
    Par Oberown dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/10/2012, 17h50
  2. menu - arrière plan qui apparaît de bas en haut
    Par ju0123456789 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/01/2011, 19h51
  3. menu fixe en bas qui s'ouvre vers le haut
    Par mohammed_amine_wardy dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/11/2010, 18h06
  4. [RegEx] Preg_split qui foire un poil
    Par Tenmaxime dans le forum Langage
    Réponses: 14
    Dernier message: 08/12/2009, 18h09
  5. Boutons pas alignés pile poil
    Par sopsag dans le forum Tkinter
    Réponses: 2
    Dernier message: 16/04/2009, 11h07

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