通过MeasuerSpec获取View的宽度和高度

在onCreate中无法通过getHeight方法获取View的宽高。我们可以通过MeasureSpec实现。

int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);

int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);

textView.measure(w, h);

int width =textView.getMeasuredWidth();

int height =textView.getMeasuredHeight();

MeasureSpec类详解

时间: 2024-10-15 18:57:10

通过MeasuerSpec获取View的宽度和高度的相关文章

HackThirteen 在onCreate()方法中获取View的宽度和高度

1.概要: Android源代码中很多模块都使用了post()方法,深入理解框架曾运行机制对于避开类似于本例中的小陷阱是很重要的 2.问题提出: 如果开发一些依赖于UI控件的宽和高的功能,开发者可能会用到View的getHeight()和getWidth()方法.试图在Activity的 onCreate()方法中获取控件的宽和高.遗憾的是如果开发者在onCreate()方法中调用上述方法,会发现返回值都是0. 3.解释问题原因: 当onCreate()方法被调用时,会通过LayoutInfla

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

你可以通过视图的getWidth()和getHeight()来获取视图的宽度和高度. 但是,可能会让你失望的是,如果你直接在onCreate方法内调用这两个函数,你会的到0. 为什么呢? 这是因为,当onCreate被调用的时候,视图的内容正在被LayoutInflater来填充xml布局. 这个过程会填充布局,但是暂时不会设置视图的大小. 那么视图到底什么时候获得自己的大小尺寸呢? 实际上是在Layout以后,而layout又是在onCreate调用以后. 那么,如果我们要在onCreate方

Android 获取View绘制前的高度

在Android开发过程中,我们可能需要获取View绘制前的高度或者宽度,一种的可能情形是我们初始化的时候让某个View是Visible = Gone的,当我们触发某个事件的时候需要它显示并且希望有一些动画效果.这时候我们就要获取这个View显示前即绘制前的宽度或者高度.原理很简单,我们知道,View的绘制过程发生之前,会先执行onMeasure方法.那么我们就可以利用反射来或者我们需要的值.下面给出获取高度的代码,宽度同理. private int getTargetHeight(View v

react-native 获取组件的宽度和高度

react-native 获取组件的尺寸有两种方式,第一种方式使用元素自身的onLayout属性去获取,但是这种方式有一个局限性,就是只有在初次渲染的时候才会触发这个函数,而且此种方法获取的是组件相对于父组件的位置坐标.如果我们需要随时都可以去获取组件的尺寸或者相对于屏幕的位置坐标时,这种方式并不适合. 那么这里我们就来看下第二种方式,使用react-native中的findNodeHandle和UIManager来获取组件的尺寸: import { findNodeHandle, UIMana

安卓获取屏幕的宽度与高度

获取屏幕的宽度与高度有以下几种方法: 1.WindowManager wm = (WindowManager) getContext()                     .getSystemService(Context.WINDOW_SERVICE);        int width = wm.getDefaultDisplay().getWidth();      int height = wm.getDefaultDisplay().getHeight();   2.Window

jquery如何获取元素的宽度和高度

jquery如何获取元素的宽度和高度: 这当然是比较基础的问题,不过有可能初学者还是不够明了,下面就简单介绍一下. 获取元素的宽度: $(selector).width() 获取元素的高度: $(selector).height() selector是选择器,例如id.类和元素选择器登登. 原文地址是:http://www.51texiao.cn/jqueryjiaocheng/2015/0613/4046.html 最为原始地址是:http://www.softwhy.com/forum.ph

php获取设备的宽度和高度

php获取设备的宽度和高度 如果前台没有传输当前请求的宽度和高度,我们有时候需要用php借助javascript获取屏幕的宽和高,以控制现实的样式. 代码如下: 1 <?php 2 /* 3 * 获取设备宽度以及高度 4 * */ 5 if (isset($_GET['width']) AND isset($_GET['height'])) { 6 // 输出变量 7 echo "Screen width is: " . $_GET['width'] . "<br

获取屏幕的宽度和高度

在js中,特别是在一些功能,比如底部返回哪些按钮等,经常需要用到,这里综合运用以下,以便可以以后快速获取: /** * 获取屏幕的宽度和高度 * @returns {*} */ function client() { if(window.innerWidth){ // ie9+ 最新的浏览器 return { width: window.innerWidth, height: window.innerHeight } }else if(document.compatMode === "CSS1C

获取字符串的宽度和高度

代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //获取字符串的宽度 NSLog(@"获得字符串的宽度:%f",[self widthForString:@"我爱你!我爱你!我爱你!我爱你!我爱你!我爱你!我爱你!我爱你!" fontSize:10.0 andHeight:10