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 :

Problème avec ImageButton animations successives


Sujet :

Android

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Problème avec ImageButton animations successives
    Bonjour,
    Dans le cadre d'une application Android Pour TV je rencontre un problème.
    Le problème se situe lorsque j’essaye d'animer une série d' ImageButton pour en faire une sorte de Dock.
    L'animation se déroule correctement (Scale). Mais lorsque je refais une nouvelle fois l'animation celle ci se remet dans son état initial alors que je souhaiterais qu'elle gardes les valeurs courantes pour celles ci. (post animation)
    Voici la parti de code concerné.

    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    	@Override
    	public boolean onKeyDown(int keyCode, KeyEvent event)
    	{
    		super.onKeyDown(keyCode, event);
     
    		View MainMenu = findViewById(R.id.menu_principal);
    		ArrayList<View> Buttons = MainMenu.getTouchables();
     
    		Animation setZoomIn = AnimationUtils.loadAnimation(ctx,
    				R.anim.menuzoomin);
    		Animation setZoomOut = AnimationUtils.loadAnimation(ctx,
    				R.anim.menuzoomout);
    		switch (keyCode)
    		{
    			case KeyEvent.KEYCODE_DPAD_LEFT:
    			{
    				for (View view : Buttons)
    				{
    					applyAnimation(view, setZoomIn);
    				}
    				return true;
    			}
    			case KeyEvent.KEYCODE_DPAD_RIGHT:
    			{
     
    			}
    		}
     
    		return (true);
    	}
    	private void applyAnimation(final View view, final Animation anim)
    	{
    	    anim.setAnimationListener(new Animation.AnimationListener()
    	    {
    	        private boolean doEnd = true;
     
    	        @Override
    	        public void onAnimationEnd(Animation animation) 
    	        {
    	            if (doEnd)
    	            {
    	                doEnd = false;
    	                setViewPos(view, anim, anim.getStartTime() + anim.getDuration());
    	            }
    	        }
     
    	        @Override
    	        public void onAnimationRepeat(Animation animation) {
    	        }
     
    	        @Override
    	        public void onAnimationStart(Animation animation) {
    	        }
     
    	    });
     
    	    view.startAnimation(anim);
    	}
     
    	private void setViewPos(View view, Animation anim, long time)
    	{
    	    // Get the transformation
    	    Transformation trans = new Transformation();
    	    anim.getTransformation(time, trans);
     
    	    // Get the matrix values
    	    float[] values = new float[9];
    	    Matrix m = trans.getMatrix();
    	    m.getValues(values);
     
    	    // Get the position and apply the scroll
    	    /*final float x = values[Matrix.MTRANS_X];
    	    final float y = values[Matrix.MTRANS_Y];
    	    view.scrollTo(-(int)x, -(int)y);*/
     
    	    final float width = values[Matrix.MSCALE_X];
    	    final float height = values[Matrix.MSCALE_Y];
     
    		final ImageButton test = (ImageButton) view;
    		android.view.ViewGroup.LayoutParams params = test.getLayoutParams();
    		params.height =10;//(int) (height * view.getLayoutParams().height) ;
    		params.width =10;//(int) (width * view.getLayoutParams().width);
     
    		test.setLayoutParams(params);
    		//setWidth((int) (width * view.getLayoutParams().width));
    		//Button.setHeight((int) (height * view.getLayoutParams().height));
    		//view.getLayoutParams().height = (int) (height * view.getLayoutParams().height);
    		//view.getLayoutParams().width = (int) (width * view.getLayoutParams().width);
    		//view.setScaleX(width);
    		//view.setScaleY(height);
     
    	}
    Merci d'avance.

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Si mon message n'est pas claire je suis a votre disposition pour plus de détail.

  3. #3
    Jay
    Jay est déconnecté
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2002
    Messages : 124
    Points : 189
    Points
    189
    Par défaut
    Bonjour,

    Si tu utilise le framework superieur à 3.1, tu peux utiliser ceci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ImageButton image = (ImageButton) findViewById(R.id.imageButton1);
    image.animate().translationX(value)
    image.animate().rotation(value)
    image.animate().scaleY(value)
    http://developer.android.com/referen...yAnimator.html

    Cordialement,
    Si vous jugez mon post utile dans la résolution de votre problème, n'hésitez pas à utiliser le système de vote afin d'améliorer la qualité du forum

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Oui bien sur,
    Mais l'idée était de passer au plus possible par le XML pour l'UI et non par du code dur.
    Mais en dernière extrémité c'est la solution que j'adopterais.

Discussions similaires

  1. Réponses: 7
    Dernier message: 04/03/2010, 13h16
  2. Manipulation bras de robot : problème avec l'animation
    Par guns_and_roses dans le forum Interfaces Graphiques
    Réponses: 17
    Dernier message: 04/12/2009, 10h56
  3. Problème avec une animation flash
    Par raphdatcom dans le forum Flash
    Réponses: 2
    Dernier message: 28/03/2007, 15h41
  4. Problème avec les animations de mon personnage
    Par Stnaire dans le forum SDL
    Réponses: 1
    Dernier message: 27/11/2006, 20h59

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