在某些需求下,我们需要在onCreate的时候就获取到控件的宽高,但是如果直接用view.getWidth()或view.getHeight()会得到0.这是因为在onCreate执行的时候,控件还没有被绘制出来.
利用下面的方法可以获得控件的宽高:
ViewTreeObserver vto = zoomImageView.getViewTreeObserver(); vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { if (hasMeasured == false) { int height = zoomImageView.getMeasuredHeight(); int width = zoomImageView.getMeasuredWidth(); Log.i("height",height+""); Log.i("width",width+""); hasMeasured = true; } return true; } });
时间: 2024-10-14 02:36:00