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 :

Canvas en java


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Employé magasin
    Inscrit en
    Août 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé magasin

    Informations forums :
    Inscription : Août 2012
    Messages : 197
    Par défaut Canvas en java
    Bonjour
    j’ai commencé le dev android et j’ai une question:
    Est ce qu’il y a de bon tuto ou de bonne lib pour faire des canvas facilement ?
    J’aimerais pouvoir tracer toute sorte de forme simplement comme je l’ai déjà fait en Javascript avec jCanvas qui est vraiment top.
    Par exemple j’aimerais réussir tracer ce genre de grille et qu’au clique de chaque case elle change de couleur: http://images.math.cnrs.fr/IMG/jpg/partie-6.jpg
    On peut refaire ça simplement en Java ?
    Merci

    EDIT:

    J'ai fait une fonction qui génère un hexagone:
    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
        public Path hexagoneGenerate(int taille, int gauche) {
            Point point1_draw = new Point(gauche + 22 * taille, 0 * taille); // Haut
     
            Point point2_draw = new Point(gauche + 44 * taille, 14 * taille); // haut droit
            Point point3_draw = new Point(gauche + 44 * taille, 39 * taille); // bas droit
     
            Point point4_draw = new Point(gauche + 22 * taille, 53 * taille); // bas
     
            Point point5_draw = new Point(gauche + 0 * taille, 39 * taille); // bas gauche
            Point point6_draw = new Point(gauche + 0 * taille, 14 * taille); // haut gauche
     
            Path path = new Path();
            path.moveTo(point1_draw.x, point1_draw.y);
            path.lineTo(point2_draw.x, point2_draw.y);
            path.lineTo(point3_draw.x, point3_draw.y);
            path.lineTo(point4_draw.x, point4_draw.y);
            path.lineTo(point5_draw.x, point5_draw.y);
            path.lineTo(point6_draw.x, point6_draw.y);
            path.close();
            return path;
        }
    EDIT:

    Autre problème que je comprends pas, j'ai presque réussi a générer ma grille, mais pas encore a décaler mes cases^^. Ce que je comprends pas c'est surtout pour la couleur, je pensais pour tester pouvoir alterner noir et #D8B784 pourtant j'ai toujours cette seconde couleur. c'est quoi la raison ?
    Le code:

    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
            int NombreBloc = 10;
     
            for (int x=0;x<NombreBloc;x++)
            {
                paint.setColor(Color.BLACK);
                Path hexagone = hexagoneGenerate(2, x*(90), 0);
                canvas.drawPath(hexagone, paint);
     
                for (int y=0;y<NombreBloc;y++)
                {
                    int calc = x*(90+45);
                    paint.setColor(Color.parseColor("#D8B784"));
                    Path hexagone2 = hexagoneGenerate(2, x*(90), y*(90));
                    canvas.drawPath(hexagone2, paint);
                }
            }

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Ce que tu veux faire s'apparente à une vue custom :
    https://developer.android.com/guide/...omponents.html
    https://developer.android.com/traini...eate-view.html

    et en particulier la partie dessin custom :
    https://developer.android.com/traini...m-drawing.html

    Chaque vue (widget) est en fait un canvas sur lequel on dessine.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Employé magasin
    Inscrit en
    Août 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé magasin

    Informations forums :
    Inscription : Août 2012
    Messages : 197
    Par défaut
    J'ai trouvé ce code: https://github.com/stkent/PolygonDrawingUtil qui a l'air vraiment top par contre je me demande comment faire pour l'event.

    EDIT:
    j'ai réussi a mettre un event quand on touche le canvas, mais je ne sais pas comment trouver qu'elle case je touche

    EDIT:
    je me demande si je peux réussir a calculer ou je touche l'écran et donc savoir qu'elle hexagone j'ai touché vu que je définie une taille et une position... reste plus qu'à essayer pour voir.

    EDIT:
    J'ai réussi à tracer ma grille et comme je stock les coordonnées de chaque case dans un tableau j'arrive a changer la couleur de la case que je veux. En revanche mon plus gros problème: comment trouver sur qu'elle case j'ai cliqué ? Je ne sais pas encore.
    Par contre il me reste à tracer réussi à trouver comment tracer le cadre extérieur et ça risque d'être dur.
    Sinon c'est moi ou avec cette lib on peut pas faire de rectangle ?

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Pour les événements dans un canvas , il te faut tout gérer toi même.

    Comme c'est toi qui dessine tu sais à quel coordonnées sont chaque élément. Au moment du "clic" tu relèves la coordonnées et tu compare avec les positions connue des éléments dans ton canvas pour déclencher ou non l'action souhaitée.

    Sinon c'est moi ou avec cette lib on peut pas faire de rectangle ?
    Je connais pas cette lib en particulier mais sur un canvas tu peux dessiner toutes les formes géométrique de base.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Employé magasin
    Inscrit en
    Août 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Employé magasin

    Informations forums :
    Inscription : Août 2012
    Messages : 197
    Par défaut
    Oui je connais chaque position des hexagones et d'ou j'ai cliqué, mais je ne sais pas comment avec cette forme(hexagones) si je suis dedans ou dehors.

    Quand on voir les différend param, cette lib est assez limité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
      polygonDrawingUtil.drawPolygon(
          canvas,
          numberOfSides,
          centerX,
          centerY,
          polygonRadius,
          cornerRadius,
          rotation,
          polygonPaint);
    }
    Alors c'est pour l'utiliser en complément.

Discussions similaires

  1. selection d'une partie d'un canvas java
    Par hammasaidi dans le forum 2D
    Réponses: 7
    Dernier message: 21/09/2010, 15h38
  2. imprimer une canvas avec java
    Par hammasaidi dans le forum Graphisme
    Réponses: 2
    Dernier message: 20/04/2010, 14h28
  3. zoom sur le contenue d'un canvas java
    Par hammasaidi dans le forum 2D
    Réponses: 12
    Dernier message: 19/04/2010, 12h43
  4. porbleme java canvas
    Par darkspoilt dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 29/10/2007, 11h11

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