Android 几种获得view的宽和高的方法
来源:互联网 发布:mysql自增id 编辑:程序博客网 时间:2024/04/28 06:13
在android开发中,我们如果在Activity中的oncreate()中利用view.getWidth()或是view.getHeiht()来获取view的宽和高,其结果往往是0,并没得到相应的值。
这是为什么呢?
在调用oncreate()方法时,界面处于不可见状态,内存加载组件还没有绘制出来,你是无法获取他的尺寸。而View的getWidth()和getHeight()方法,都是获取view在界面布局中的显示位置固定后对应的属性。
那如何在绘制组件之前能获取到该组件的尺寸大小呢?
方法一
int wid =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);int hei =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);view.measure(wid,hei);int height=view.getMeasuredHeight();int width=view.getMeasuredWidth();
方法二
ViewTreeObserver vto =view.getViewTreeObserver(); vto.addOnPreDrawListener(newViewTreeObserver.OnPreDrawListener() { @Override publicboolean onPreDraw() { int height =view.getMeasuredHeight(); int width =view.getMeasuredWidth(); }});
方法三
那么,在activity进入运行期时,组件的尺寸获取方法就很简单了,直接getWidth()和getHeight().ViewTreeObserver vto = view.getViewTreeObserver(); vto.addOnGlobalLayoutListener(newOnGlobalLayoutListener(){ @Override publicvoid onGlobalLayout() { view.getViewTreeObserver().removeGlobalOnLayoutListener(this); int height =view.getMeasuredHeight(); int width =view.getMeasuredWidth(); } });
1 0
- Android 几种获得view的宽和高的方法
- android获得view的宽和高
- Android 获得view的宽和高
- Android 获得view的宽和高
- Android 获得view的宽和高
- Android 获得view的宽和高
- Android 获得View的宽和高
- Android 获得view的宽和高
- Android 获得view的宽和高
- android 开发中获取View视图的宽和高的几种方法
- android 开发中获取View视图的宽和高的几种方法
- Android 开发中获取View视图的宽和高的几种方法
- Android如何正确获得View的宽和高
- Android如何正确获得View的宽和高
- 关于获得一个view的宽和高
- 正确的获得一个view的宽和高(两种方法)
- TextView 获取自适应 wrap_content 的宽高 Android 获得view的宽和高
- 获得 View 宽高的几种方法
- VMware虚拟机无法安装win7系统解决办法
- IOS(UI)_委托传值
- Mac下使用钥匙串申请CSR(.certSigningRequest)
- Android漂亮的UI库集合
- Egret 游戏引擎(HTML5)
- Android 几种获得view的宽和高的方法
- 在Debian系统中iptables规则的持久化如何操作
- 高等数学:第二章 导数与微分(2)初等函数 高级导数 隐函数 参数函数
- 如何减轻跑步时的痛苦
- FAQ 前端面试大杂烩2
- iOS 与 JS 交互
- Android Timer的自动功能
- Behavior Designer中节点类型分析
- 为什么有了扫描版pdf还需要排版并不良好的文字版?