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 :

Problème de dessin sur Canvas


Sujet :

Composants graphiques Android

  1. #1
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut Problème de dessin sur Canvas
    Bonjour,
    Voilà, dans un jeu, je dessine dans un Canvas;
    Voici le rendu que ça donne sur la très grande majorité des plate-formes:


    Cependant, aujourd'hui, j'ai reçu une remarque d'une personne me disant que les boutons s'affichaient mal sur sa tablette;
    Voici son screen:


    Alors là, je sèche, et ne trouve pas le soucis; voici le code pour dessiner ça, rien de plus simple:
    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
    mPaint.setStyle(Style.FILL);
        	mPaint.setColor(Color.BLACK);
        	canvas.drawRect(mX, mY, mX+mWidth, mY+mHeight, mPaint);
     
        	mPaint.setStyle(Style.STROKE);
        	if(isDown()) {
        		mPaint.setColor(Constants.COLOR_BUTTON_PRESSED);
        	} else {
        		mPaint.setColor(Constants.COLOR_BUTTON);
        	}
        	mPaint.setShadowLayer(PaintResources.SHADOW_RADIUS, 0, 0, mPaint.getColor());
     
        	canvas.drawRect(mX, mY, mX+mWidth, mY+mHeight, mPaint);
     
        	canvas.drawText(mText, mX+mWidth/2, mY+mMargin-mPaint.ascent(), mPaint);
    Quelqu'un aurait une idée?

  2. #2
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 76
    Points
    76
    Par défaut
    Bonjour,
    la tablette est sur quelle version d'android ?
    Sur android 3.0, la méthode shadowlayer deconne si la view utilise l'acceleration materiel. En tout cas sur l'acer c'est le cas.

  3. #3
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut
    Merci beaucoup de ton information!
    C'est surement ça! Je viens tester sur l’émulateur avec Android 3.0 et en effet, ce bug apparait!

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 76
    Points
    76
    Par défaut
    En fait pas dit que ça soit un problème d'acceleration car se n'est valable que si tu fais un projet full 3.0,
    mais je crois plutôt que la fonction shadow layer s'applique sur la totalité du rectangle, il fait un FILL avec le shadow, il ne prend pas en compte ton STROKE.

    un exemple trouvé sur le net :
    ici regarde l'image du résultat (pas besoin de lire le chinois pour comprendre le code)

    En tout cas sur une acer a500 3.0 et un htc Desire 2.2 j'ai le même comportement du shadow dans le cas du STROKE.

    L’accélération apport un autre problème en 3.0 qui n'est pas celui-là.

  5. #5
    Membre éclairé
    Avatar de ZouBi
    Inscrit en
    Octobre 2007
    Messages
    508
    Détails du profil
    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 508
    Points : 812
    Points
    812
    Par défaut
    Si tu veux obtenir un même résultat sans bug; voici ma manipulation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Paint paint = new Paint();
    paint.setColor(0xffff0000);
    canvas.drawRect(rect, paint);
    paint.setMaskFilter(new BlurMaskFilter(radius, Blur.Outer));
    canvas.drawRect(rect, paint);

  6. #6
    Membre régulier
    Inscrit en
    Décembre 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 44
    Points : 76
    Points
    76
    Par défaut
    si tu as pu resoudre ton problème. merci de le presiser.

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

Discussions similaires

  1. Faire pivoter dessin sur canvas
    Par sp2308 dans le forum Débuter
    Réponses: 4
    Dernier message: 12/12/2014, 14h31
  2. Redimensionner taille d'un TImage + dessin sur canvas
    Par Ben_Le_Cool dans le forum Langage
    Réponses: 2
    Dernier message: 21/07/2011, 16h39
  3. Problème de dessin sur une form
    Par Alchemist dans le forum Delphi
    Réponses: 7
    Dernier message: 27/01/2007, 22h10
  4. Réponses: 5
    Dernier message: 23/09/2006, 12h40
  5. Réponses: 1
    Dernier message: 05/08/2006, 20h43

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