2013-03-04 28 views
1

我正在實現imageview拖動功能到我的應用程序。 我嘗試了下面的代碼,但它的行爲很奇怪。當我嘗試拖動圖像 它改變了位置,並在移動過程中顯示縮放圖像。 我想用手指平滑地移動圖像。用手指拖動Android圖像視圖表現奇怪

請幫我解決這個問題

@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; 
    } 

回答

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

而且有錯誤:

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

X - 在絕對座標事件,marginParams.leftMargin - 座標是相對父佈局