如何在onCreate方法中获取视图的宽度和高度

简介: 你可以通过视图的getWidth()和getHeight()来获取视图的宽度和高度。 但是,可能会让你失望的是,如果你直接在onCreate方法内调用这两个函数,你会的到0。 为什么呢? 这是因为,当onCreate被调用的时候,视图的内容正在被LayoutInflater来填充xml布局。

你可以通过视图的getWidth()和getHeight()来获取视图的宽度和高度。

但是,可能会让你失望的是,如果你直接在onCreate方法内调用这两个函数,你会的到0。

为什么呢?

这是因为,当onCreate被调用的时候,视图的内容正在被LayoutInflater来填充xml布局。

这个过程会填充布局,但是暂时不会设置视图的大小。

那么视图到底什么时候获得自己的大小尺寸呢?

实际上是在Layout以后,而layout又是在onCreate调用以后。

那么,如果我们要在onCreate方法中获取视图的大小,应该怎么办呢?

其实,解决方法还是有的,就是利用视图的post方法

废话不多说,看下代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    View view = findViewById(R.id.main_my_view);
    view.post(new Runnable() {    
        // Get size of view after layout
        @Override
        public void run() {
            Log.d(TAG, "view has width: "+view.getWidth() + " and height: "+view.getHeight());
        }
    });
}

 

目录
相关文章
|
资源调度 网络协议 数据安全/隐私保护
操作系统的演变与未来趋势
【10月更文挑战第20天】 本文将探讨操作系统从早期到现代的发展过程,分析其核心功能的变化以及未来可能的发展趋势。通过回顾历史,我们可以更好地理解当前操作系统的设计哲学和技术挑战,为未来的技术创新提供参考。
400 14
|
边缘计算 人工智能 物联网
|
机器学习/深度学习 计算机视觉
字节豆包全新图像Tokenizer:生成图像最低只需32个token,最高提速410倍
【7月更文挑战第1天】新方法将图像转为1D token序列,减少计算复杂度,提高生成效率。在保持高画质(如gFID: 1.97 on ImageNet 256x256)的同时,TiTok比现有模型快410倍。虽有资源需求及token限制问题,但展示了图像处理的新方向。[论文链接](https://arxiv.org/abs/2406.07550)
648 7
|
边缘计算 安全 物联网
未来互联网架构的演变
【8月更文挑战第16天】随着科技的不断进步,互联网作为现代社会不可或缺的基础设施,其架构也在不断地发展与演变。本文将探讨未来互联网架构可能的变化方向,包括边缘计算、软件定义网络(SDN)、网络功能虚拟化(NFV)等技术趋势,以及这些技术如何影响互联网的稳定性、安全性和效率。同时,文章还将讨论这些变革对用户隐私保护和数据治理的潜在影响,并展望互联网架构的未来发展趋势。
|
Python
|
量子技术
什么是量子计算?
【5月更文挑战第20天】什么是量子计算?
487 2
|
Linux 新制造 开发工具
常见公司的CAN通讯卡比较:Moxa、Advantech、NI、周立功
常见公司的CAN通讯卡比较:Moxa、Advantech、NI、周立功
744 0
充值后为什么还显示停机?
充值后为什么还显示停机?
1345 1
|
移动开发 API
阿里云com域名优惠口令【com批量注册更享优惠】
阿里云com域名优惠口令【com批量注册更享优惠】2023年阿里云域名优惠口令,com域名续费优惠口令“com批量注册更享优惠”,cn域名续费优惠口令“cn注册多个价格更优”,com域名注册优惠口令“梦想从域名开始”,cn域名注册优惠口令“互联网上的中国标识”,阿里云优惠口令是域名专属的优惠码,可用于域名注册、续费和转入使用,域名优惠口令区分域名后缀
389 0
|
存储 Android开发
方法:一键把一堆手机号码一次性快速导入手机通讯录
手机是人们日常沟通常用的工具,所以自然就要用到手机里面的通讯录联系。因此我们常要把别人的号码存入到手机通讯录里面,如果只是存五个十个那就动动手指就可以了。但是如果你想存把一个电脑excel表格里面的几百个、几千个、几万个等数量级别的联系人一键导入手机通讯录,显然手动一个个来存入是不现实的。我这里演示,通过借助网上常见的便捷工具软件,金芝号码提取导入助手,代替你手动工作来快速完成这个工作,如何一键把一堆手机号码一次性快速导入手机通讯录,省事省时省力。下面做个操作过程的图文讲解。
4872 0
方法:一键把一堆手机号码一次性快速导入手机通讯录