如何获取到Android控件的高度
2015-09-01 00:00
274 查看
摘要: 如何获取到Android控件的高度
很多人在activity主线程中调用getWidth、getMeasuredWidth,却获取不到view的宽高,这是因为此时view还没有完成绘制,当然获取不到,那要怎么办呢?
方法一,自己测量:
方法二,添加绘图监听,绘图结束后获取view的大小:
很多人在activity主线程中调用getWidth、getMeasuredWidth,却获取不到view的宽高,这是因为此时view还没有完成绘制,当然获取不到,那要怎么办呢?
方法一,自己测量:
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); view.measure(w, h); int height = view.getMeasuredHeight(); int width = vew.getMeasuredWidth();
方法二,添加绘图监听,绘图结束后获取view的大小:
view.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { public boolean onPreDraw() { view.getViewTreeObserver().removeOnPreDrawListener(this); int height = view.getMeasuredHeight(); int width = view.getMeasuredWidth(); return true; } });
方法三,添加全局布局变化监听:
view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { @Override public void onGlobalLayout() { view.getViewTreeObserver().removeGlobalOnLayoutListener(this); view.getHeight(); view.getWidth(); } });
相关文章推荐
- Android 如何让EditText不自动获取焦点
- android:gravity和android:layout_Gravity的区别
- android中toast使用注意事
- Android-实现汉字转拼音支持一词多音
- 无线安全Android小工具
- 第一次启动AVD失败了
- Android的内部存储和外部存储
- <Android>界面美化的一点点积累
- Android Activity Task taskAffinity launchMode 之间的关系
- <Android>递归删除文件夹中的文件以及文件夹
- Android控件之SlidingDrawer(滑动式抽屉)详解与实例
- Android项目开发实战:2D翻转
- Android发送邮件
- Android获取当前电量信息(BroadcastReceiver的使用)
- <Android>Activity生命周期
- 响应能力总结--Android
- Getting Started Android
- Android简单练习(TableLayout)
- Android中webview和js之间的交互及注意事项
- 感悟:分分钟搞定上拉刷新,下拉加载 Android新手