首先要明白一点就是一般情况下,我们在Activity里面的onCreate里面获取View宽高,可以采用:

(1)View布局完成的监听

button.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {@Overridepublic void onGlobalLayout(){//here you can get sizewidth = button.getWidth();height = button.getHeight();button.getViewTreeObserver().removeGlobalOnLayoutListener(this);}
});

(2)post里面进行获取

button.post(new Runnable() {@Overridepublic void run() {//here you can get sizewidth = button.getWidth();height = button.getHeight();}
});

但是要注意就是很多时候,我们的View的状态时GONE的。

在此状态下使用上面两种方式都是不能获取对应的宽高的,而INVISIBLE状态时可以的。

INVISIBLE状态,系统会给View保留位置,也就是说View的宽高是已经算好了的,只是不进行渲染。

而GONE状态,系统不仅仅不会计算宽高,当然也不会渲染了。

问题如何获取View为GONE状态下的宽高呢?

有个小技巧就是,在xml中先将View设置设置为INVISIBLE,然后在onCreate中,在post中获取宽高,然后将View设置为GONE就可以了。

<TextViewandroid:id="@+id/txt"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="15dp"android:layout_marginRight="15dp"android:background="#ff00ff"android:gravity="center"android:text="读书"android:textColor="#ffffff"android:textSize="32sp"android:visibility="invisible" />
txt = (TextView) findViewById(R.id.txt);txt.post(new Runnable() {@Overridepublic void run() {width = txt.getWidth();height = txt.getHeight();txt.setVisibility(View.GONE);}});

当View为GONE状态时获取View的宽高相关推荐

  1. android 获取屏幕的宽高

    今天,讲讲android如何获取屏幕的宽高. // 通过WindowManager获取 DisplayMetrics dm = new DisplayMetrics(); getWindowManag ...

  2. 前端js获取图片大小 扩展名_前端 JS 获取 Image 图像 宽高 尺寸

    前端 JS 获取 Image 图像 宽高 尺寸 简介 项目中用到获取图片的原始尺寸,然后适配宽高:网上的大部分前端解决方案,都是new Image()后,在onload事件中获取image的尺寸. 在 ...

  3. php 获取图片的宽高,JS怎么获取图片当前宽高

    JS获取图片当前的宽高,我们可以使用JavaScript clientWidth和clientHeight属性来实现获取.clientWidth.clientHeight属性表示获取图像的当前宽度和高 ...

  4. jquery 判断是否是浮点数_jquery或者js获取到元素宽高精确到小数

    首先我们应该知道用jQuery的width()方法获取元素的宽高及样式属性数值时,如果元素的属性是浮点数,会自动四舍五入成整数. 而如果我们就是想获取实际的带小数的属性数值时该用什么方法. 在使用获取 ...

  5. 未开启横屏时,设置了宽高为窗口100%的视频,竖屏方向播放时,变形问题解决

    当手机未开启横屏时,设置了宽高为窗口100%的视频,竖屏方向播放时,会有拉伸,可以根据手机宽高比例判断横竖屏状态,来设置旋转视频元素,同时更新设置视频元素宽高(与之前状态的宽高值对调) demo: & ...

  6. Android获取网络图片的宽高

    有时我们需要在加载显示网络图片前拿到图片的宽高对控件做些处理,比如针对过长的图片只显示部分,点击后在展示全图,那么怎样拿到网络图片的宽高呢? 方式一.使用HttpURLConnection + Bit ...

  7. JS获取video真实宽高

    JS获取video真实宽高 JS代码 var video = document.querySelector('video'); video.addEventListener('canplay', fu ...

  8. RT/Metro商店应用如何如何获取图片的宽高

    RT/Metro商店应用如何如何获取图片的宽高 var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms ...

  9. 【若依(ruoyi)】获取mainContent的宽高

    前言 若依(ruoyi): v4.3 360极速浏览器 12.0.1550.0 (正式版本) (32 位) 操作系统 Windows 10 OS Version 2004 (Build 19041.5 ...

最新文章

  1. 强化学习(三) - Gym库介绍和使用,Markov决策程序实例,动态规划决策实例
  2. css label 居中布局_HTMLCSS精华知识点——表单元素、BFC、两栏布局、居中总结等...
  3. linux无法挂载移动硬盘6,FC6下挂载NTFS移动硬盘,无法读取
  4. ReactNative生成android平台的bundle文件命令
  5. 【设计模式】迪米特法则和六种原则的总结
  6. 跳表(SkipList)设计与实现(java)
  7. JButton 圆角_昆明圆角灯箱哪家好
  8. java中获取文件路径的几种方式
  9. 13、java中8中基本类型
  10. linux下vtune使用
  11. 关于使用pietty或putty终端连接ubuntu虚拟机时报被拒绝连接问题
  12. 贾跃亭成了,FF 91预量产车下线完成
  13. 3d激光雷达开发(voxel滤波)
  14. ROS学习笔记7(理解ROS服务和参数)
  15. 一些Arduino 测试代码
  16. C++中带默认参数的函数定义及使用总结
  17. 什么是互联网产品策划、什么是运营策划(经典收藏)
  18. 应用|5G时代10大应用场景!
  19. BAT机器学习面试1000题系列(详细版)
  20. mysql geo_地理位置geo处理之mysql函数

热门文章

  1. 蒙特卡洛树搜索的主要流程有哪些_「详细原理」蒙特卡洛树搜索入门教程
  2. 百度刷相关wf5搜_干翻抖音?百度上线新APP!
  3. 应用架构的核心使命是什么?阿里高级技术专家如是说
  4. 3d 和4d 印刷电子的应用是什么?
  5. 关闭联想y9000x电源灯电问题 bios1.06
  6. 如何在键盘上输出摄氏度“°C”
  7. 女特种兵清华大学计算机系,清华女生携笔从戎当上特种兵,你不必道德绑架,这才是女神的样子...
  8. 魅族16s/16s Pro 降级救砖教程(安卓10内测版降级教程)
  9. python处理行情数据_利用Python脚本来获取期货行情数据
  10. MLA Review之三:朴素贝叶斯分类