在onCreate()方法中,通过view.getWidth()和view.getHeight()方法是无法获取控件的宽高的,但是如下两个方法可以;
private void getSize2(View v,String tag){ int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); v.measure(w, h); int height = v.getMeasuredHeight(); int width = v.getMeasuredWidth(); Log.d(TAG,tag +"的高度为:"+height+";"+tag+"的宽度为:"+width); } /** * 获取控件大小 * @param v * @param tag */ private void getSize(final View v, final String tag) { ViewTreeObserver vto = v.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { v.getHeight(); v.getWidth(); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) { v.getViewTreeObserver().removeGlobalOnLayoutListener(this); } else { v.getViewTreeObserver().removeOnGlobalLayoutListener(this); } Log.d(TAG, tag + "的高度为:" + v.getHeight() + ";" + tag + "的宽度为:" + v.getWidth()); } }); }