Android编程获取组件尺寸大小的方法
本文实例讲述了Android编程获取组件尺寸大小的方法。分享给大家供大家参考,具体如下:
在oncreate()中利用view.getWidth()或是view.getHeiht()来获取view的宽和高,看似没有问题,其实他们去得值是0,并不是你想要的结果?
这是为什么呢?
在调用oncreate()方法时,界面处于不可见状态,内存加载组件还没有绘制出来,你是无法获取他的尺寸。
那如何在绘制组件之前能获取到该组件的尺寸大小呢?
这里有三种方法,经过验证的:
方法一 :
//测量方法 int width =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int height =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); view.measure(width,height); int height=view.getMeasuredHeight(); int width=view.getMeasuredWidth();
方法二 :
//增加组件绘制之前的监听
ViewTreeObserver vto =view.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override public ooleanonPreDraw() {
int height =view.getMeasuredHeight();
int width =view.getMeasuredWidth();
}
});
方法三 :
//增加整体布局监听
ViewTreeObserver vto = view.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener(){
@Override public voidonGlobalLayout() {
view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
int height =view.getMeasuredHeight();
int width =view.getMeasuredWidth();
}
});
那么,在activity进入运行期时,组件的尺寸获取方法就很简单了,直接getWidth()和getHeight().
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
相关文章
实例解析Android系统中的ContentProvider组件用法
这篇文章主要介绍了Android系统中的ContentProvider组件用法,举例讲解了ContentProvider传递数据及监听ContentProvider数据改变的方法,十分详细,需要的朋友可以参考下2016-04-04
百度语音识别(Baidu Voice) Android studio版本详解
这篇文章主要介绍了百度语音识别(Baidu Voice) Android studio版本详解的相关资料,需要的朋友可以参考下2016-09-09
Android4.4+ 实现半透明状态栏(Translucent Bars)
这篇文章主要为大家详细介绍了Android4.4+ 实现半透明状态栏,对状态栏(Status Bar)和下方导航栏(Navigation Bar)进行半透明处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-09-09
Android项目类似淘宝 电商 搜索功能,监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录的实现
本篇文章主要介绍了Android实现类似淘宝、电商、搜索功能(监听软键盘搜索事件,延迟自动搜索,以及时间排序的搜索历史记录),感兴趣的小伙伴们可以参考一下。2016-10-10
Android编程之ListPreference用法实例分析
这篇文章主要介绍了Android编程之ListPreference用法,结合实例形式较为详细的分析说明了ListPreference的功能、用法及相关注意事项,需要的朋友可以参考下2015-12-12
Android SdkVersion的区别及获取版本信息方法
下面小编就为大家带来一篇Android SdkVersion的区别及获取版本信息方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-03-03


最新评论