Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Android] OnTouchListener + Cacher une Bitmap

    30 janvier 2013 à 18:22:12

    Bonjour 

    Bon sa fait un moment que je cherche sans trouver de réponse qui fonctionne.

    J'ai créer une surfaceView ou j'ai ajouté des bitmap. 

    Donc mon problème c'est que je veux ajouter un OnTouchListener a une bitmap, mais on ne peut en utiliser pour une Bitmap donc je voudrais savoir si il y a d'autre solution?

    Puis en fonction de si on Touch la Bitmap alors une autre Bitmap se cache, mais la aussi on ne peut pas utiliser setVisibility(Invisible), sur une bitmap

    J'ai essayer d'autre méthode comme eraseColor(Color, TRANSPARENT), mais sa ne marche pas.

    Donc si vous avez des solutions a me proposer merci pour votre aide. 

    • Partager sur Facebook
    • Partager sur Twitter

    Site Internet : https://devst.go.yj.fr

      30 janvier 2013 à 19:30:47

      Un Bitmap c'est juste une image que tu dessines. Si tu veux la "cacher" il suffit de ne pas la dessiner.

      Pour le onTouch() tu peux récupérer les coordonnées du toucher à partir de l'objet MotionEvent passé en paramètre de la méthode. Ensuite suffit de vérifier si les coordonnées correspondent à un endroit où tu as dessiné un Bitmap.

      • Partager sur Facebook
      • Partager sur Twitter
      ⚙️ Une solution simple règle le problème ; une solution compliquée en crée un nouveau.
        30 janvier 2013 à 21:33:37

        Merci pour t'a réponse

        Pour le Bitmap je veux le montrer et dès que j'appuie sur un autre bitmap alors elle se cache.

        Donc il faut dessiner la Bitmap au début.

         Tu place le OnTouch sur la surfaceView et tu définis l’endroit ou est le Bitmap, c'est ça? mais j'ai mis sur mon Bitmap un Random donc je ne sais pas ou il va réapparaître. 

        Donc si il y aurais d'autres solutions?

        Sinon au pire j'essaye de tous recommencer en passant par un Layout en XML ou je met des imageViews.  

        • Partager sur Facebook
        • Partager sur Twitter

        Site Internet : https://devst.go.yj.fr

          30 janvier 2013 à 23:01:47

          Ben même si les positions sont random tu fais bien le calcul pour savoir où il va apparaître, suffit de garder les valeurs générées en mémoire dans un tableau ou une liste.

          • Partager sur Facebook
          • Partager sur Twitter
          ⚙️ Une solution simple règle le problème ; une solution compliquée en crée un nouveau.
            31 janvier 2013 à 18:46:11

            Je ne fait pas vraiment de calcul, vus que je luis dit d’apparaître aléatoirement sur toutes ma surface:
            c.drawBitmap(rond,  (float) (x+ Math.random()*getWidth()), (float) (y+ Math.random()*getHeight()), null);
            		
            Sinon je n'ai pas encore vus comment garder des donner dans une mémoire Faut que je lise cette partie du tutoriel.

            -
            Edité par DeveloSt 31 janvier 2013 à 18:47:05

            • Partager sur Facebook
            • Partager sur Twitter

            Site Internet : https://devst.go.yj.fr

              31 janvier 2013 à 20:02:48

              DeveloSt a écrit:

              Je ne fait pas vraiment de calcul, vus que je luis dit d’apparaître aléatoirement sur toutes ma surface:
              c.drawBitmap(rond,  (float) (x+ Math.random()*getWidth()), (float) (y+ Math.random()*getHeight()), null);
              	

              Donc tu fais bien un calcul :)

              DeveloSt a écrit:

              Sinon je n'ai pas encore vus comment garder des donner dans une mémoire Faut que je lise cette partie du tutoriel.


              Pas mal celle-là :lol: Tu sais créer une variable non ? Si oui ben voilà tu sais stocker une valeur en mémoire (un entier, une chaîne de caractères... peu importe).

              • Partager sur Facebook
              • Partager sur Twitter
              ⚙️ Une solution simple règle le problème ; une solution compliquée en crée un nouveau.
                31 janvier 2013 à 20:25:13

                Je voulais dire qu'il y a une partie sur Android: Le Stockage de donné et que je ne l'ai pas encore lus.
                • Partager sur Facebook
                • Partager sur Twitter

                Site Internet : https://devst.go.yj.fr

                  31 janvier 2013 à 21:32:09

                  J'avais compris ;) mais ce n'est pas dont je parlais.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  ⚙️ Une solution simple règle le problème ; une solution compliquée en crée un nouveau.
                    1 février 2013 à 19:15:11

                    oui si tu fais x = 0 

                    Alors il retient 0 dans la mémoire jusqu’à ce que tu change x

                    si après tu fais x + 2

                    alors dans ce cas il retient 2

                    Mais comment tu fais pour qu'il retient le 0 de depart ?

                     Minde

                    Donc tu fais bien un calcul :)

                    Oui mais dans mon calcul je ne sais pas ou il apparaît sur ma surface, je ne le définis pas

                    Si je retiens les endroit ou ma Bitmap réapparaît après si j'appuie sur un endroit ou ma Bitmap est apparue sa fonctionne quand même?    

                    Voilà ou j'en suis: 

                    @Override
                    	public boolean onTouch(View v, MotionEvent event) {
                    	rond = event.
                    	rond = event.
                    		
                    	return true;
                    	}

                    C'est comme ça qu'il faut donner la position de mon Bitmap rond 

                    je doit mettre quoi derrière rond = event. ?   



                    -
                    Edité par DeveloSt 3 février 2013 à 13:08:22

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Site Internet : https://devst.go.yj.fr

                      10 février 2013 à 11:32:57

                      Je remonte le sujet, car je n'ai toujours pas réussi a trouver. 

                      Pour définir un endroits j'utilise une régions ?

                       Region region = new Region(left, top, right, bottom);

                      Mais je dois mettre quelle coordonnée pour qu'il détecte mon Bitmap? 

                         Sinon quand je touche l'endroit définis sa ne rend pas mon Bitmap transparent.

                      public boolean onTouch(View v, MotionEvent event) {
                      	{
                      	    float x = event.getX();
                      	    float y = event.getY();
                      
                      	    if(region.contains((int)x, (int)y))
                      	    {
                      	        Bitmap2.eraseColor(Color, TRANSPARENT); }
                      
                      	    return true;
                      	} 

                      -
                      Edité par DeveloSt 10 février 2013 à 11:35:27

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Site Internet : https://devst.go.yj.fr

                      [Android] OnTouchListener + Cacher une Bitmap

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown