Android 获取控件宽高的3种方法
16lz
2021-01-23
/** * 获取控件宽高 此方法会加载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(); } });
更多相关文章
- Android控件笔记——在界面中显示图片
- Android UI控件详解-CheckBox(多选框)
- android使用webview加载网页
- Android UI控件详解-Gallery(画廊)
- Android UI控件详解-ImageSwitcher(图片切换器)
- Android 滑动开关控件
- Android 学习之- 单选按钮、复选框、状态开关、时钟控件
- Android 控件之八:AutoCompleteTextView自动完成文本框
- Android UI控件详解-RadioGroup和RadioButton(单选框)