2011-02-02 4 views
0

J'ai un ensemble d'images. Je l'affiche sur l'écran en tant que grille. Donc, basé sur la sélection de chaque image que je veux faire des actions. C'est ce que j'ai fait. Mais une exigence supplémentaire est que lorsque nous passons notre main à travers ces images, je dois aussi effectuer les mêmes actions. C'est-à-dire, je vais devoir suivre sur quelle image j'ai touché en ce moment et effectuer les actions. Comment vais-je l'implémenter? Est-ce que quelqu'un a une idée? Veuillez répondre ..défilement dans la vue de grille

+0

> Donc, basée sur la sélection de chaque image que je veux faire des actions. Que j'ai fait ==> comment cette sélection est-elle faite? Par trackball? –

+0

ceci est une vue de la grille. J'ai donc utilisé ItemClickListener pour ce faire .. – Mathew

Répondre

0

Je l'ai fait.

Dans le code ci-dessous colorGV est mon nom de réseau. Ajoutez-y un écouteur.

colorGV.setOnTouchListener(new OnTouchClick(context)); 

Et définir onTouchClick comme:

private class OnTouchClick implements OnTouchListener { 

     Context context; 

     OnTouchClick(Context context) { 
      this.context = context; 
     } 

     public boolean onTouch(View v, MotionEvent event) { 
      try { 

       if (event.getAction() == MotionEvent.ACTION_MOVE) { 
        int x = (int) event.getX(); 
        int y = (int) event.getY(); 

        int position = -1; 
        for (int i = 0; i < colorGV.getChildCount(); i++) { 
         Rect ButtonRect = new Rect(); 
         colorGV.getChildAt(i).getHitRect(ButtonRect); 
         if (ButtonRect.contains(x, y)) { 
          position = i; 
          break; 
         }  
        } 

        if (position >= 0 && prevPos != position) { 
         System.out.println("Position changed :" + position); 
         return true; 
        } 
       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
      return false; 
     } 
    } 
0

Essayez onTouch() événement De View.OnTouchListener. Ceci est appelé lorsque l'utilisateur exécute une action qualifiée d'événement tactile, y compris une pression, une libération ou un geste de mouvement sur l'écran (dans les limites de l'élément).

Espérons que cela aide.

0

Vous pouvez définir les auditeurs à vos images, à savoir

imgView.setOnTouchListener(...) 
imgView.setOnFocusChangeListener(...) 

ou

imgView.setOnClickListener() 

puis effectuer l'action dans ces auditeurs. Si vous utilisez setOnFocusChangeListener, vous devriez être en mesure de traiter tous les cas indépendamment de la façon dont vous avez sélectionné l'image, via tactile ou trackball.

+0

ces images sont dans la grille. donc je vais devoir ajouter l'auditeur à la grille na ... – Mathew

+0

@ Mathew: pourquoi à la grille? Pourquoi pas aux images vues? Fait plus de sens pour moi ... btw: voir aussi http://stackoverflow.com/questions/738817/create-a-clickable-image-in-a-gridview-in-android –

Questions connexes