2014-08-27 150 views
0

我使用(X,Y)坐标在ONTOUCH上绘制了一幅图像,当它移动图像时,坐标应该随着图像一起移动,并在图像到达时结束。图像应该绘制在那里,否则图像应该返回到它的起点位置。例如:(在我们的手机中,如果键盘锁,我们将拖动它打开,如果它到达终点,锁将打开,否则图像将达到它的起始位置)。如何在Android中获取(x,y)图像的坐标?

下文称链接:http://www.vogella.com/tutorials/AndroidTouch/article.html

这里是我的代码:

@Override 
public boolean onInterceptTouchEvent(MotionEvent event) { 
if (mLocked) { 
return false; 
} 

final int action = event.getAction(); 

float x = event.getX(); 
float y = event.getY(); 
if (mOnDrawerScrollListener != null) { 
mOnDrawerScrollListener.onScrollStarted(); 
} 

final int pt = getSide(); 
mTouchDelta = (int)(y - pt); 
prepareTracking(pt); 
mVelocityTracker.addMovement(event); 
final Rect frame = mFrame; 
final View handle = mHandle; 

如果任何人有这样的想法,请帮助我的朋友。

+0

你可以发布你的代码 – DCoder 2014-08-27 08:03:52

+0

PLZ看到我已经更新了代码 – Vicky 2014-08-27 08:15:00

回答

1

如果你想获得(X,Y)的观点cordinates(ImageView的),只需使用view.getX()view.getY()。但是,当您在onCreate()中得到它时,结果将为(0,0),因为它尚未创建。您应该使用onGlobalLayoutListener()中的中的view.getX(),view.getY()。对于e.g:

rlRoot.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { 

     @Override 
     public void onGlobalLayout() { 
      // TODO Auto-generated method stub 
      rlRoot.getViewTreeObserver().removeGlobalOnLayoutListener(this); 
      Log.d("X", view.getX()+""); 
      Log.d("Y", view.getY()+""); 
     } 
    }); 

随着rlRoot是布局包括你的观点和看法可以是ImageView的或任何视图。 试试吧,希望它有帮助。

相关问题