![[Android学习笔记]获取view的尺寸和坐标 [Android学习笔记]获取view的尺寸和坐标](https://image.shishitao.com:8440/aHR0cHM6Ly9ia3FzaW1nLmlrYWZhbi5jb20vdXBsb2FkL2NoYXRncHQtcy5wbmc%2FIQ%3D%3D.png?!?w=700&webp=1)
对于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的尺寸和坐标,可以使用以下方法:
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;
}
});
get view info