如何在android中获取图像的(x,y)坐标?

时间:2014-08-27 07:58:43

标签: java android image position

我在ONTOUCH上画了一个带有(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;

如果有人对此有所了解,请帮助我。

1 个答案:

答案 0 :(得分:1)

如果你想获得(x,y)视图坐标(ImageView),只需使用 view.getX() view.getY()。但是当你在 onCreate()中得到它时,结果将是(0,0),因为它尚未创建。您应该在 onGlobalLayoutListener()中使用view.getX(),view.getY()。例如:

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或任何视图。 试试吧,希望有所帮助。