Android(安卓)获取控件宽高的3种方法
16lz
2021-12-04
/** * 获取控件宽高 此方法会加载onMeasure三次 * * @param v * @return 宽高坐标 */ int w = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); v.measure(w, h); int width = v.getMeasuredWidth(); int height = v.getMeasuredHeight(); /** * 获取控件宽高 此方法会加载onMeasure二次,但是回调函数会回调很多次 * * @param v * @return 宽高坐标 */ ViewTreeObserver viewTreeObserver = v.getViewTreeObserver(); viewTreeObserver.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { int width = v.getMeasuredWidth(); int height= v.getMeasuredHeight(); return true; } }); /** * 获取控件宽高 此方法会加载onMeasure二次,但是回调函数只回调一次 * * @param v * @return 宽高坐标 */ ViewTreeObserver vto = v.getViewTreeObserver(); vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { v.getViewTreeObserver().removeGlobalOnLayoutListener(this); int width = v.getMeasuredWidth(); int height = v.getMeasuredHeight(); } });
更多相关文章
- 如果Imageview与Linearlayout有叠加且可选资源长度不同,如何布局?
- Android控件笔记——在界面中显示图片
- android工厂类
- Android之GLES2.0显示图片测试代码
- Android(安卓)UI控件详解-CheckBox(多选框)
- android使用webview加载网页
- Android(安卓)UI控件详解-Gallery(画廊)
- Android_自定义View拖拽重绘
- Android(安卓)UI控件详解-ImageSwitcher(图片切换器)