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

Composants graphiques Android Discussion :

Android : Dessiner un text defilant avec Canvas


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut Android : Dessiner un text defilant avec Canvas
    Bonjour


    Je veux faire un texte défilant en android mais avec Canvas en exploitant les thread ou Handler


    Le texte dois défiler comme les messages sur les chaines de télevision ou comme la balise marquee en html.

    1. Suggestion?
    2. Comment update a GUI en Android ( il y'a invalidate mais il ne fait pas mon affaire)

  2. #2
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Salut,

    Peut être que si tu t'inspires de ça :
    http://www.developpez.net/forums/d39...s-sort-jpanel/

    Tiens nous au courant si tu réussi à faire quelques choses, ça peut être sympa de voir comment tu as fais.
    Merci.

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Merci pour votre lien mais la solution n'etant pas adapté à la mienne :

    Voici mon retour
    on peut le faire soit en etant une classe de la classe TextView et ajouter des animation qui a ete mon cas

    Par ailleurs il suffit d'exploiter la tag marquee et ellipsize en Android pour defiler le textview comme le code suivant le montre bien

    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
    
    
     <TextView
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content"
            android:text="Developpez.com est un site ou on pose des question, quand on trouve la solution on reviens partager avec les autres, voici l esprit entraide, by SIDIBE Ali-Broma,"
            android:singleLine="true"
            android:marqueeRepeatLimit="marquee_forever" 
            android:enabled="true" 
            android:clickable="true" 
            android:saveEnabled="true" 
            android:selectAllOnFocus="true" 
            android:focusable="true" 
            android:focusableInTouchMode="true" 
            android:ellipsize="marquee" android:id="@+id/textv"/>
    Seule les parties en gras sont necessaire pour pour defilier

    Il faut obligatoirement android:focusable="true" pour defilier. Ceci c'est le cas d'un textView mais on peut appliquer àtoutes les sous view ( button .....)

    Le probleme qu'on ne controle plus la vitesse,

    J'espere que ca peut aider les autres personnes;

    Il y'a plusieur solutions dont une autre voila :

    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
     
     
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.graphics.Path;
    import android.graphics.Path.Direction;
    import android.view.View;
    import android.view.animation.AccelerateDecelerateInterpolator;
    import android.view.animation.AlphaAnimation;
    import android.view.animation.Animation;
    import android.view.animation.AnimationSet;
    import android.view.animation.AnimationUtils;
    import android.view.animation.RotateAnimation;
    import android.view.animation.TranslateAnimation;
    import android.widget.ViewFlipper;
     
    class GraphicsView extends View {
     
     // by SIDIBE Ali-Broma Android Developper,
        private Animation anim;
     
        Context context;
     
        public GraphicsView(Context context) {
            super(context);
            this.context=context;
        }
     
     
     
    	private void createAnim(Canvas canvas)
        {
          anim = new TranslateAnimation(Animation.RELATIVE_TO_PARENT, -1.0f,Animation.RELATIVE_TO_PARENT, 1.0f,
        		  Animation.RELATIVE_TO_PARENT, 0.0f,Animation.RELATIVE_TO_PARENT, 0.0f);
          anim.setRepeatMode(Animation.RESTART);
          anim.setRepeatCount(Animation.INFINITE);
     
     
     
            anim.setDuration(1000L);
     
     
            anim.setInterpolator(new AccelerateDecelerateInterpolator());
     
     startAnimation(anim);
        }
     
     
        @Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
        // on cree l'animation s'il n'exisite pas
            if (anim == null) {
                createAnim(canvas);
            }
     
            Paint paint = new Paint();
            paint.setColor(Color.BLUE);
            paint.setTextSize(12);
            paint.setAntiAlias(true);
            canvas.drawText("Developpez.com est un site  entraide et de partage", 20, 200, paint);
     
     
     
     
        }
     
     
    }
    Son avantage qu'on peut le controler la vitesse mais il ne prend que la taille de l 'ecran.



    Ceci est un lien qui peut aussi grandement aider les gens pour animer le texte :

    http://stuffthathappens.com/blog/200...animation-101/

  4. #4
    Rédacteur
    Avatar de MrDuChnok
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2002
    Messages
    2 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 112
    Par défaut
    Merci du retour

    (sujet résolu ? )

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Par défaut
    Oui c'est non seulement résolu mais par plus de trois méthodes différentes ce qui lui adaptera au besoins des autres.

Discussions similaires

  1. Dessiner du texte, avec des fonts et styles différents
    Par soa dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 23/08/2011, 17h53
  2. Texte défilant avec canvas
    Par elmagique dans le forum Développement Mobile en Java
    Réponses: 1
    Dernier message: 01/03/2010, 03h47
  3. Dessiner du texte avec un certain angle
    Par nanettemontp dans le forum Windows
    Réponses: 16
    Dernier message: 19/10/2007, 10h56
  4. animation avec du texte defilant
    Par Larsen00 dans le forum Flash
    Réponses: 6
    Dernier message: 06/12/2006, 11h03

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