我试图为布局中的任何对象获取 x,y 但是当屏幕的最后一个角落处的对象时我得到了这个值:
对象X:266
对象Y:361
屏幕宽度:320
屏幕高度:480
我如何才能知道屏幕的确切位置在哪里? (的端,上,左,中心)。
答案 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)
我认为您需要将对象的width
和height
添加到x
和y
值
要知道屏幕的确切位置
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();