[Android学习笔记]获取view的尺寸和坐标
2014-04-22 00:39 hellenism 阅读(701) 评论(0) 编辑 收藏 举报对于UI方面很多时候需要获取它的很多信息,具体情况见view的文档
View文档
http://developer.android.com/training/index.html
常用方法:
获取view的宽高
getWidth()
getHeight()
获取当前view相对于[父元素]坐标系的原点.
此点对于当前view而言,是它的左上角点在父元素坐标系中的坐标
getX()
getY()
获取当前view相对于[父元素]坐标系的几个值
getLeft()
getTop()
getRight()
getBottom()
他们获取到的数据与layout(l,t,r,b)方法中的l,t,r,b一致
注意:以上获取到的数据的单位都是像素px
onCreate方法中获取view的尺寸,坐标信息
onCreate中可获得控件的引用,但是无法获取到控件的尺寸,坐标等信息,因为此时控件尚未被绘制所以无法得到这些信息,
如果实在需要view的尺寸和坐标,可以使用以下方法:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
btn = (Button)findViewById(R.id.btn); ViewTreeObserver vto = btn.getViewTreeObserver(); vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { public boolean onPreDraw() { if (hasMeasured == false) { // 获取btn的宽高 int height = btn.getMeasuredHeight(); int width = btn.getMeasuredWidth(); Log.d("test","width:" + btn.getWidth() +" height:" + btn.getHeight()); // 获取btn的坐标信息 Log.d("test", " getWidth():" + btn.getWidth() + " getHeight():" + btn.getHeight()+ " getLeft():" + btn.getLeft() + " getRight():" + btn.getRight() + " getTop():"+btn.getTop() + " getBottom():" + btn.getBottom() + " getX():" + btn.getX() + " getY():" + btn.getY()); // 设置标志 hasMeasured = true; } return true; } });
人生就是一局不能Again的DOTA