Android getWidth和getMeasuredWidth 区别
2016-05-03 11:11
417 查看
转载出处:http://blog.sina.com.cn/s/blog_4b93170a0102e2ns.html
getWidth():
Return the width of the your view.
Returns: the width of your view, in pixels
getMeasuredWidth():
The width of this view as measured in the most recent call to measure(). This should be used during measurement and layout calculations only. Use getWidth() to see how wide
a view is after layout.
Returns: the measured width of this view
1. 在一个类初始化时,即在构造函数当中是得不到View的实际大小的(这个我测试过,的确)。大家可以试试,getWidth()和getMeasuredWidth()得到的结果都是0,但是可以从onDraw()方法或者dispatchDraw()方法里面获得。可以通过调用invalidate()来执行onDraw()和dispatchDraw()方法。
2. 这两个方法所得到的结果的单位是像素即pixel
getWidth(): View在设定好布局后,整个View的宽度
getMeasuredWidth():对View上的内容进行测量后得到的View内容占据的宽度。前提是你必须在父布局的onLayout()方法或者此View的onDraw()方法里调用measure(0,0);(measure参数的值可以知己定义),否则得到的结果和getWidth()得到的结果是一样的。
这两个方法最主要的区别在于,是否使用了measure()方法,同时measure()使用的位置也很重要。
getHeight() 和 get MeasuredHeight() 区别同理。
Google文档的英文说明:
getWidth():Return the width of the your view.
Returns: the width of your view, in pixels
getMeasuredWidth():
The width of this view as measured in the most recent call to measure(). This should be used during measurement and layout calculations only. Use getWidth() to see how wide
a view is after layout.
Returns: the measured width of this view
前提知识点:
1. 在一个类初始化时,即在构造函数当中是得不到View的实际大小的(这个我测试过,的确)。大家可以试试,getWidth()和getMeasuredWidth()得到的结果都是0,但是可以从onDraw()方法或者dispatchDraw()方法里面获得。可以通过调用invalidate()来执行onDraw()和dispatchDraw()方法。2. 这两个方法所得到的结果的单位是像素即pixel
正确的理解:
getWidth(): View在设定好布局后,整个View的宽度getMeasuredWidth():对View上的内容进行测量后得到的View内容占据的宽度。前提是你必须在父布局的onLayout()方法或者此View的onDraw()方法里调用measure(0,0);(measure参数的值可以知己定义),否则得到的结果和getWidth()得到的结果是一样的。
这两个方法最主要的区别在于,是否使用了measure()方法,同时measure()使用的位置也很重要。
getHeight() 和 get MeasuredHeight() 区别同理。
相关文章推荐
- android中listview setEmptyView()的使用
- 【项目源码】- 【天气预报】模仿魅族系统天气预报android
- Android studio gradle配置详解
- Android ListView分页功能实现方法
- android设计模式
- Android 工具资源大全
- 完美解决Android SDK Manager无法更新
- 工作和学习经验总结
- android xml 绘图 shape 解析
- Android TextView长按复制文本
- Android Fragment中使用Intent组件拍照
- Android中View绘制流程以及invalidate()等相关方法分析
- Android service工具类,判断服务是否在运行
- 基于mac,使用android studio进行ndk开发(1)
- android service 本地 远程 总结
- Android开发之滑动图片轮播标题焦点
- android 支持的语言列表(汇总)
- Android学习笔记(一)——Activity基础知识
- Activity的几种状态
- Android HashMap增强版SoftMap,使用软引用