Android编程获取组件尺寸大小的方法
发布时间 - 2026-01-11 00:23:18 点击率:次本文实例讲述了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
# 获取
# 组件
# 尺寸大小
# Android开发之WebView组件的使用解析
# android开发教程之view组件添加边框示例
# Android组件间通信--深入理解Intent与IntentFilter
# Android应用程序四大组件之使用AIDL如何实现跨进程调用Service
# android WebView组件使用总结
# android使用include调用内部组件的方法
# Android四大组件之Service(服务)实例详解
# Android实现动态切换组件背景的方法
# Android开发之时间日期组件用法实例
# 深入理解Android组件间通信机制对面向对象特性的影响详解
# Android开发四大组件之实现电话拦截和电话录音
# 进阶
# 这是
# 还没有
# 你是
# 相关内容
# 感兴趣
# 给大家
# 很简单
# 什么呢
# 更多关于
# 解决方法
# 所述
# 程序设计
# 你想要
# 有三种
# 到该
# 去得
# 加载
# 测量方法
# 讲述了
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
青岛网站建设如何选择本地服务器?
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
jquery插件bootstrapValidator表单验证详解
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
简历没回改:利用AI润色让你的文字更专业
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
Bootstrap整体框架之CSS12栅格系统
Python文件操作最佳实践_稳定性说明【指导】
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
如何快速搭建FTP站点实现文件共享?
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
php 三元运算符实例详细介绍
英语简历制作免费网站推荐,如何将简历翻译成英文?
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
微信小程序 scroll-view组件实现列表页实例代码
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
详解Android中Activity的四大启动模式实验简述
Laravel如何与Pusher实现实时通信?(WebSocket示例)
制作旅游网站html,怎样注册旅游网站?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
黑客入侵网站服务器的常见手法有哪些?
利用python获取某年中每个月的第一天和最后一天
JavaScript如何操作视频_媒体API怎么控制播放
微信小程序 HTTPS报错整理常见问题及解决方案
海南网站制作公司有哪些,海口网是哪家的?
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
宙斯浏览器视频悬浮窗怎么开启 边看视频边操作其他应用教程
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
如何利用DOS批处理实现定时关机操作详解
Python并发异常传播_错误处理解析【教程】
高端网站建设与定制开发一站式解决方案 中企动力
Laravel安装步骤详细教程_Laravel环境搭建指南
Android滚轮选择时间控件使用详解
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】
zabbix利用python脚本发送报警邮件的方法
Laravel如何实现文件上传和存储?(本地与S3配置)
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
利用 Google AI 进行 YouTube 视频 SEO 描述优化
Android okhttputils现在进度显示实例代码
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
如何挑选最适合建站的高性能VPS主机?
如何快速搭建支持数据库操作的智能建站平台?

