Android 获取View在屏幕中的位置

本文详细介绍了Android中获取View在屏幕中的位置的方法,包括`getLocationOnScreen`、`getLocationInWindow`以及相对位置获取方法。通过示例代码展示了如何在UI控件加载完成后获取这些坐标,并解析输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android里面提供了一些方法可以获取View在屏幕中的位置。

getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,获取在当前屏幕内的绝对坐标(该值从屏幕顶端算起,包括了通知栏高度)。 

getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y值。

getLeft , getTop, getBottom, getRight,  这一组是获取相对在它父亲布局里的坐标。


注意:如果在Activity的OnCreate()事件输出那些参数,是全为0,要等UI控件都加载完了才能获取到这些数据。

		button2.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				int[] location = new int[2];
				v.getLocationOnScreen(location);
				x = location[0];
				y = location[1];
				Log.d("test", "Screenx--->" + x + "  " + "Screeny--->" + y);
				v.getLocationInWindow(location);
				x = location[0];
				y = location[1];
				Log.d("test", "Window--->" + x + "  " + "Window--->" + y);
                Log.d("test", "left:" + v.getLeft());
                Log.d("test", "right:" + v.getRight());
                Log.d("test", "Top:" + v.getTop());
                Log.d("test", "Bottom:" + v.getBottom());
                Log.d("test", "Width:"+v.getWidth());
                Log.d("test", "Height:"+v.getHeight());
			}
		});
输出结果

08-09 23:57:10.883: D/test(4723): Screenx--->0  Screeny--->148
08-09 23:57:10.922: D/test(4723): Window--->0  Window--->148
08-09 23:57:10.922: D/test(4723): left:0
08-09 23:57:10.922: D/test(4723): right:480
08-09 23:57:10.922: D/test(4723): Top:72
08-09 23:57:10.922: D/test(4723): Bottom:144
08-09 23:57:10.922: D/test(4723): Width:480
08-09 23:57:10.922: D/test(4723): Height:72

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值