Android:获取屏幕对象的位置

时间:2013-11-25 10:27:17

标签: android dimensions

我试图为布局中的任何对象获取 x,y 但是当屏幕的最后一个角落处的对象时我得到了这个值:

对象X:266

对象Y:361

屏幕宽度:320

屏幕高度:480

我如何才能知道屏幕的确切位置在哪里? (的端,上,左,中心)。

3 个答案:

答案 0 :(得分:17)

希望这会有所帮助..

public Rect locateView(View view) {
    Rect loc = new Rect();
    int[] location = new int[2];
    if (view == null) {
        return loc;
    }
    view.getLocationOnScreen(location);

    loc.left = location[0];
    loc.top = location[1];
    loc.right = loc.left + view.getWidth();
    loc.bottom = loc.top + view.getHeight();
    return loc;
}

我用这种方法:

  Rect r = TVGridUtils.locateView(activity.findViewById(R.id.imageview));                 

        float touchX=r.left+((r.right-r.left)/2);
        float touchY=(r.bottom);    

注意:我必须得到我触及的imageview的中间点

答案 1 :(得分:1)

我认为您需要将对象的widthheight添加到xy

要知道屏幕的确切位置

X = 0,Y = 0 TOP LEFT

X = screenWidth-objectWidth,Y = 0 TOP RIGHT

X = 0,Y = screenHeight-objectHeight BOTTOM LEFT

X = screenWidth-objectWidth,Y = screenHeight-objectHeight BOTTOM RIGHT

答案 2 :(得分:1)

Button b;
int x1 = b.getX();
int x2 = x1 + b.getWidth();
int y1 = b.getY();
int y2 = y1 + b.getHeight();