android设置父控件内x y坐标,Android中取触摸点X,Y坐标,和取元素宽,高的方法解析...

首先取触摸点坐标要在onTouchEvent这个方法中取,取坐标的方法如下event.getX()//取相对于你触摸的view的左边的偏移(X坐标)

event.getY()//取相对于你触摸的view的顶边的偏移(Y坐标)

event.getRawX()//取你触摸点相对于屏幕左边的偏移

event.getRawY()//取你触摸点相对于屏幕顶边的偏移

view.getHeight();//取到的是控件在屏幕中你能看到的高度(可能上面或下面有隐藏的部分)

view.getMeasuredHeight()//取到的是控件真实的高度包括上面或下面隐藏的部分

view.getWidth();//同上

view.getMeasuredWidth()//同上

//取控件宽高在oncreate中直接取的话都是0,所以要用下面方法取,

//方法三的效率最快具体使用哪个要看你的需求

//方法一

int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);

int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);

imageView.measure(w, h);

int height =imageView.getMeasuredHeight();

int width =imageView.getMeasuredWidth();

textView.append("\n"+height+","+width);

//方法二

ViewTreeObserver vto = imageView.getViewTreeObserver();

vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {

public boolean onPreDraw() {

int height = imageView.getMeasuredHeight();

int width = imageView.getMeasuredWidth();

textView.append("\n"+height+","+width);

return true;

}

});

//方法三

ViewTreeObserver vto2 = imageView.getViewTreeObserver();

vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

@Override

public void onGlobalLayout() {

imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);

textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth());

}

});

//取手机屏幕的宽高

//第一种方法

DisplayMetrics dm = new DisplayMetrics();

getWindowManager().getDefaultDisplay().getMetrics(dm);

int screenWidth = dm.widthPixels;// 屏幕的宽度

int screenHeight = dm.heightPixels; //屏幕的高度

//第二种方法

WindowManager manager = getWindowManager();

Display display = manager.getDefaultDisplay();

int screenWidth = display.getWidth();// 屏幕的宽度

int screenHeight = display.getHeight();//屏幕的高度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值