2011-08-24 4 views
0

peut-on m'aider à faire glisser et déposer l'affichage du texte sur l'ensemble de la vue de l'image. J'ai trouvé à partir de ce drag n drop textview in android ici la vue du texte est statique, dans mon application textview et vue de l'image sont dynamiquement changer. `@Override onTouchEvent public boolean (événement MotionEvent) {Faites glisser et déposez le textview sur imageview?

switch (event.getAction()) { 
    case MotionEvent.ACTION_DOWN: 
     // Remember our initial down event location. 
     startX = event.getRawX(); 
     startY = event.getRawY(); 
     break; 
    case MotionEvent.ACTION_MOVE: 
     float x = event.getRawX(); 
     float y = event.getRawY(); 
     // Calculate move update. This will happen many times 
     // during the course of a single movement gesture. 
     scrollByX = x - startX; //move update x increment 
     scrollByY = y - startY; //move update y increment 
     startX = x; //reset initial values to latest 
     startY = y; 
     invalidate(); //force a redraw 
     break; 
     } 
    return true; //done with this event so consume it 
} 

i wright ce code, mais il ne fonctionne pas correctement.

Répondre

2

Vous pouvez toujours modifier l'image et le texte de la vue existante par programmation en utilisant les méthodes de tri setText.

Il y a beaucoup de tutrials de glisser-déposer si vous le google. suggère fortement de les essayer. Fondamentalement ce que vous faites est implémenter un OnTouchListener sur le TextView comme

textview.setOntouchListener (écouter);

OnTouchListener onThumbTouch = new OnTouchListener() 
    { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) 
     { 
      switch(v.getId()) 
      { 
       case R.id.slider_thumb_id: 
       { 
        switch(event.getAction()) 
        { 
         case MotionEvent.ACTION_MOVE: 
         {       


         } 
         case MotionEvent.ACTION_UP: 
         {       

         } 
        } 
        break; 
       } 
      } 
      return true; 
     } 
    }; 

attribut ici de l'événement que vous obtenez la valeur de x et y et l'événement touche et utiliser pour modifier la position du textview. Je l'ai fait en ajoutant/soustrayant les valeurs de marge.

EDIT: Voici ce que j'ai fait pour mettre à jour la position de ma vue Look event.getRawY(); va vous donner la distance de la vue des parents. Donc, si j'obtiens event.getRawY() = 50. Je sais que j'ai besoin que la vue de texte soit à 50 pixels du haut. Maintenant, la vue que j'ai sélectionnée est 50 px du haut de la vue parente.

+0

ok, comment déplacer le texte sur l'image entière. –

+0

s'il vous plaît envoyez-moi cette fonction. @ Blessenm –

+0

J'ai utilisé imageview.setMargin(). Vous n'aurez pas besoin d'invalider. – blessenm

Questions connexes