2013-03-04 5 views
1

J'applique la fonction glisser imageview à mon application. J'ai essayé avec le code ci-dessous, mais il se comporte étrange.Quand j'essaie de faire glisser l'image il change la position et pendant le mouvement, il est comme le zoom de l'image. Je veux déplacer l'image avec le doigt en douceur.Android glisser imageview avec le doigt se comporte étrange

s'il vous plaît aidez-moi à résoudre ce problème

@Override 
    public boolean onTouch(View v, MotionEvent event) { 
     final int X = (int) event.getRawX(); 
     final int Y = (int) event.getRawY(); 
     MarginLayoutParams marginParams = new MarginLayoutParams(mImagePreView.getLayoutParams()); 

     switch (event.getAction()) { 

     case MotionEvent.ACTION_DOWN: 
      _xDelta = X - marginParams.leftMargin; 
      _yDelta = Y - marginParams.topMargin; 
      break; 
     case MotionEvent.ACTION_MOVE: 
      marginParams.leftMargin = X-_xDelta; 
      marginParams.topMargin = Y - _yDelta; 
      marginParams.rightMargin = -250; 
      marginParams.bottomMargin = -250; 

      FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(marginParams); 
      mImagePreView.setLayoutParams(layoutParams); 

      break; 
     default: 
      break; 
     } 
     return true; 
    } 

Répondre

0
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) mImagePreView.getLayoutParams(); 
layoutParams.leftMargin += offsetX; 
layoutParams.topMargin += offsetY; 

Et il y a erreur:

_xDelta = X - marginParams.leftMargin; 
    _yDelta = Y - marginParams.topMargin; 

X - événements en coordonnées absolues, marginParams.leftMargin - Les coordonnées sont relatives au parent mise en page

Questions connexes