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 Simple:Effectuer une translation vers le haut [Débutant(e)]


Sujet :

Android

  1. #1
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut Animation Simple:Effectuer une translation vers le haut
    Bonjour a tous,

    Je souhaiterais qu'au clic sur un bouton reduire,une partie du contenu de l'application "disparaisse" et qu'en recliquant sur le bouton "reduire" la partie disparut "reaparaisse".
    Comme par exemple lorsqu'on clique sur reduire dz une fenetre par ex.

    Voici mon code

    MainActivity.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Button b_reduire=null;
    b_reduire=(Button) findViewById(R.id.bouton_reduire);
    	b_reduire.setOnClickListener(reduireListener);
    private OnClickListener reduireListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            	Animation animation = AnimationUtils.loadAnimation(getBaseContext(), (R.id.animTranslation));
            	this.startAnimation(animation);//Je sais que "this" n'est pas le bon terme a employe ici c'est la que ca coince :)
            }};
    XML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!-- Debut:definit l'animation -->
        <Translate
            android:id="@+id/animTranslation"
            android:fromXDelta="1.0"
            android:fromYDelta="1.0" 
    		android:toXDelta="0" 
    		android:toYDelta="0" 
    		>
    <LinearLayout></LinearLayout><!--Des tas de LinearLayout differents-->
     
    </Translate>
    Si vous avez besoin de plus de précision, n'hésitez pas à m'en demander.

    Voila merci a vous

    A+

  2. #2
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Pourquoi ne masques tu pas directement le layout que tu veux faire disparaître. Il suffit de mettre sa visibilité à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    layout.setVisibility(View.GONE);

  3. #3
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @David55//

    Tu veux dire ,un truc ,comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Button b_reduire=null;
    Layout layout=getLayoutBy Id(/*id de mon "layout" que je souhaite voire disparaitre*/);
    b_reduire=(Button) findViewById(R.id.bouton_reduire);
    	b_reduire.setOnClickListener(reduireListener);
    private OnClickListener reduireListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            	layout.setVisibility(View.GONE);
            }};
    Je ne sais pas si :existe car la je n'ai pas la capacite de tester mon code,en ce moment.C'est pour cela que je te demande si l'idée est bonne.Mais si tu pouvais me corriger mes fausses methodes ca serait cool .Merci mec.

    A+.

    PS:Sympa ton blog je l'ai mis en favoris mais si tu pouvais le mettre a jour,ca serait bien.

  4. #4
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Bonjour,

    Alors voila c'etait a peu pres ca dans l'idée .Mais y avait des tas de coquilles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	//
    	LinearLayout layoutR=null;//R.id.aReduire);
    	private OnClickListener reduireListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {/*
            	// On crée un utilitaire de configuration pour cette animation
            	Animation animation = AnimationUtils.loadAnimation(getBaseContext(), (R.id.animTranslation));
            	// On l'affecte au widget désiré, et on démarre l'animation
            	this.startAnimation(animation);*/
            	layoutR=(LinearLayout)findViewById(R.id.aReduire);
            	layoutR.setVisibility(View.GONE);
            }
    	};
    Maintenant ca marche.

    Voici le code en entier on ne sait jamais il pourra peut etre aider qqun.
    Le but cliquer sur le bouton "reduire" fait reduire la partie concernée.Le bouton devient "augmenter" il permet alors d'augmenter ce qui a ete reduit et ainsi de suite.
    SVP,donnez moi votre avis sur la qualité du code ca serait sympa.
    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
     
            Button b_calculer=null;
    	Button b_reduire=null;
    	boolean augmenterB=false;
    	boolean reduireB=true;
     
    	public void bouton(){
    	//
    	b_calculer=(Button) findViewById(R.id.bouton_calcul);
    	b_calculer.setOnClickListener(calculListener);
    	//
    	b_reduire=(Button) findViewById(R.id.bouton_reduire);
    	b_reduire.setOnClickListener(reduireListener);
    	}
     
    //
    	LinearLayout layoutR=null;//R.id.aReduire);
    	private OnClickListener reduireListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {/*
            	// On crée un utilitaire de configuration pour cette animation
            	Animation animation = AnimationUtils.loadAnimation(getBaseContext(), (R.id.animTranslation));
            	// On l'affecte au widget désiré, et on démarre l'animation
            	this.startAnimation(animation);*/
            	layoutR=(LinearLayout)findViewById(R.id.aReduire);
            	layoutR.setVisibility(View.GONE);
            	//
            	b_reduire.setText("Augmenter!");
            	//
            	reduireB=false;
            	augmenterB=true;
            	if(augmenterB=true){
            		b_reduire.setOnClickListener(augmenterListener);
            	}
            }
    	};
     
     
    	private OnClickListener augmenterListener = new View.OnClickListener() {
    		public void onClick(View v) {
    			layoutR=(LinearLayout)findViewById(R.id.aReduire);
    			layoutR.setVisibility(View.VISIBLE);
    			b_reduire.setText("Réduire!");
    			//
    			reduireB=true;
    			augmenterB=false;
    			//
    			if(reduireB=true){
    				b_reduire.setOnClickListener(reduireListener);
    			}
    			}
    	};
     
    	//----FIN:Listener----
    Mais j'aimerais qu'on repondre a ma premiere question,cad faire la mm chose mais en utilisant le fichier "XML".

    Tchao.

  5. #5
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Quelques petites remarques :
    - Attention au nom de variable (pas d'underscore en JAVA, underscore en xml)
    - Les booleens sont inutiles dans ton code. On les supprime
    - Mettre toutes les instanciations au même endroit

    Voici ton code corrigé (attention à changer les identifiants xml dans ton fichier xml) :
    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
     
     
        private LinearLayout layoutR;
    	private Button bCalculer;
    	private Button bReduire;
     
    	@Override
    	public void onCreate ()
    	{
    //....
    		layoutR = (LinearLayout) findViewById (R.id.layout_hide);
    		bCalculer = (Button) findViewById (R.id.bouton_calcul);
    		bReduire = (Button) findViewById (R.id.bouton_reduire);
     
    		// Instanciation du onCLickListener de chaque bouton
    		bCalculer.setOnClickListener (calculListener);
    		bReduire.setOnClickListener (reduireListener);
    	}
     
    	private OnClickListener reduireListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            	layoutR.setVisibility (View.GONE);
            	bReduire.setText ("Augmenter!");
           		bReduire.setOnClickListener (augmenterListener);
            }
    	};
     
    	private OnClickListener augmenterListener = new View.OnClickListener() {
    		public void onClick(View v) {
    			layoutR.setVisibility (View.VISIBLE);
    			bReduire.setText ("Réduire!");
    			bReduire.setOnClickListener (reduireListener);
    		}
    	};

  6. #6
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    Ok,un grd merci a toi!

    Et si je veux faire la mm chose mais sur le fichier "XML".

  7. #7
    Rédacteur
    Avatar de David55
    Homme Profil pro
    Ingénieur informatique
    Inscrit en
    Août 2010
    Messages
    1 542
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 1 542
    Points : 2 808
    Points
    2 808
    Par défaut
    Dans ce cas, il te faudra 2 fichiers xml:
    - Le 1er servira à faire disparaître le bloc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="600"
        android:fillAfter="false"
        android:fromXDelta="0"
        android:fromYDelta="0"
        android:toXDelta="0"
        android:toYDelta="-100%p" />
    Le deuxième à le faire apparaître :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      <?xml version="1.0" encoding="utf-8"?>
    <translate xmlns:android="http://schemas.android.com/apk/res/android"
        android:duration="600"
        android:fillAfter="false"
        android:fromXDelta="0"
        android:fromYDelta="-100%p"
        android:toXDelta="0"
        android:toYDelta="0" />
    Ensuite dans ton code, tu vas devoir ajouter l'animation avant de masquer ou faire apparaître le bloc, ce qui donne :
    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
     
     
    	private Animation showAnimation;
    	private Animation hideAnimation;
        private LinearLayout layoutR;
    	private Button bCalculer;
    	private Button bReduire;
     
    	@Override
    	public void onCreate ()
    	{
    		//....
    		layoutR = (LinearLayout) findViewById (R.id.layout_hide);
    		bCalculer = (Button) findViewById (R.id.bouton_calcul);
    		bReduire = (Button) findViewById (R.id.bouton_reduire);
     
    		showAnimation = (Animation) AnimationUtils.loadAnimation(getApplicationContext (), R.anim.show_animation);
            hideAnimation = (Animation) AnimationUtils.loadAnimation(getApplicationContext (), R.anim.hide_animation);
     
    		// Instanciation du onCLickListener de chaque bouton
    		bCalculer.setOnClickListener (calculListener);
    		bReduire.setOnClickListener (reduireListener);
    	}
     
    	private OnClickListener reduireListener = new View.OnClickListener() {
            @Override
            public void onClick(View v) {
    			layoutR.startAnimation(hideAnimation);
            	layoutR.setVisibility (View.GONE);
            	bReduire.setText ("Augmenter!");
           		bReduire.setOnClickListener (augmenterListener);
            }
    	};
     
    	private OnClickListener augmenterListener = new View.OnClickListener() {
    		public void onClick(View v) {
    			layoutR.startAnimation(showAnimation);
    			layoutR.setVisibility (View.VISIBLE);
    			bReduire.setText ("Réduire!");
    			bReduire.setOnClickListener (reduireListener);
    		}
    	};

  8. #8
    Membre actif
    Homme Profil pro
    :-)
    Inscrit en
    Mars 2014
    Messages
    194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : :-)
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Mars 2014
    Messages : 194
    Points : 204
    Points
    204
    Par défaut
    @David55//

    Ok super gars.
    Merci de ton aide.
    Je mets le sujet résolu!

    Merci de ton aide.

    Tchao.

    PS:ton blog est super sympa continu ^^,si tu pouvais rajouter des tutos comme ca ca l’améliorerait.

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

Discussions similaires

  1. Déplacer une ligne vers ou haut ou le bas d'une Listebox
    Par fmris dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2014, 10h26
  2. decalage d'une matrice vers le haut
    Par adjolgam1 dans le forum C
    Réponses: 3
    Dernier message: 15/05/2012, 12h30
  3. [XL-2003] Déplacer une ligne vers le haut ou vers le bas
    Par rjf18 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/01/2010, 21h59
  4. [Integration anim flash]effectuée une parade.
    Par Fabouney dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/03/2007, 12h27
  5. [C#] Redirection d'une frame vers une page simple
    Par st0j dans le forum ASP.NET
    Réponses: 6
    Dernier message: 17/06/2005, 15h42

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