`
xindrace
  • 浏览: 95738 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 在OnCreate()中获取控件高度与宽度

 
阅读更多

试过在OnCreate()中获取控件高度与宽度的童鞋都知道,getWidth()与getHeight()方法返回是0,具体原因看一下Activity的生命周期 就会明白。

上代码:

方法一:

int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
ssidtext.measure(w, h);
int width =ssidtext.getMeasuredWidth();
int height =ssidtext.getMeasuredHeight();

方法二:

 

ViewTreeObserver vto = ssidtext.getViewTreeObserver();
vto.addOnPreDrawListener(
new ViewTreeObserver.OnPreDrawListener() {
public boolean onPreDraw() {
int height = ssidtext.getMeasuredHeight();
int width = ssidtext.getMeasuredWidth();
return true;
}
});


另外还搜索到一个方法:
-----------------------------------------------------------
先贴到这里。正在做试验。(试验完毕,这种方法得到的控件宽是正确的。

 

ViewTreeObserver vto = mArrowUp.getViewTreeObserver();

 

vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {

 

@Override

 

public void onGlobalLayout() {

 

mArrowUp.getViewTreeObserver().removeGlobalOnLayoutListener(this);

 

Log.e("Width",Integer.toString(mArrowUp.getWidth()));

 

}

 

});

 

 

 

 

具体用哪一种可以根据需求自己选择

分享到:
评论
2 楼 wiseideal 2012-08-28  
方法一有问题 得到的值不准确
方法二是对的
1 楼 wiseideal 2012-08-28  
makeMeasureSpec 和 measure 方法不熟
希望对自己有帮助把

相关推荐

    Android在OnCreate中获取控件的宽度和高度的实现代码

    在Android应用开发中,有时我们需要在界面上线之前获取到控件的宽度和高度,以便进行自适应布局或者精确的计算。在`OnCreate`方法中直接尝试获取这些尺寸可能无法得到正确的结果,因为`OnCreate`主要用于初始化数据...

    Android中oncreate中获得控件高度或宽度的实现方法

    在Android开发中,有时我们需要在`onCreate()`方法中获取控件的高度或宽度,以便进行一些自定义布局或计算。然而,`onCreate()`方法在应用程序启动时被调用,主要用于初始化活动的数据,并非用于获取视图的尺寸,...

    Android OnCreate()中获取控件高度与宽度两种方法详解

    在Android应用开发中,我们经常需要在特定时刻获取UI控件的高度和宽度,例如TextView、Button等。然而,在`OnCreate()`方法中直接调用`getWidth()`和`getHeight()`通常会返回0,因为此时布局尚未完全绘制。为了解决...

    动态的设置或者获取控件的长和宽

    本文将详细讲解如何在`onCreate()`方法中实现这一功能,以及与之相关的控件、宽度和高度相关的知识点。 首先,我们需要了解Android中的控件。在Android系统中,控件(View)是用户界面的基本元素,如按钮(Button)...

    Android中获取控件宽高的4种方法集合

    Android中获取控件宽高的4种方法集合 Android手机应用程序开发中,获取控件的宽高是一项非常重要的任务。今天,我们将分享四种获取控件宽高的方法,希望能够对Android开发者提供有价值的参考。 方法1:...

    android获取控件宽高.rar

    在Android开发中,获取控件的宽度和高度是常见的需求,尤其在自定义视图或者动态布局时。这个压缩包“android获取控件宽高.rar”可能包含了一些示例代码或者教程,帮助开发者理解如何在不同场景下获取控件尺寸。由于...

    ( Android 获取屏幕宽高的3种方式以及获取控件宽高等的方法 )的示例demo

    在Android开发中,获取屏幕和控件的宽高是常见的需求,这有助于我们进行界面布局和自定义视图的设计。本示例demo将详细介绍三种不同的方法来获取Android设备的屏幕宽高,以及如何获取控件的宽高。下面将详细阐述这些...

    Android 高仿 IOS日历 滚轮选择控件

    在Android开发中,为了提供与iOS相似的用户体验,开发者经常需要实现特定的UI控件,例如iOS风格的日历滚轮选择器。这个“Android高仿IOS日历滚轮选择控件”就是一个很好的例子,它旨在复刻iOS日历中常用的日期和时间...

    android自定义时钟控件

    在Android开发中,自定义控件是提升应用用户体验和界面独特性的重要手段。本文将深入探讨如何创建一个自定义的时钟控件,模仿真实时钟的指针运动,为用户提供直观的时间显示。 首先,我们需要了解Android控件的基础...

    Android_ListView控件基本用法

    本文将详细介绍如何在Android应用程序中使用`ListView`控件,包括其基本概念、工作原理以及如何实现简单的数据绑定。 #### 二、ListView 控件概述 `ListView` 是一种可以滚动显示多个数据项的控件,非常适合用于...

    Android编程获取屏幕宽高与获取控件宽高的方法

    在Android中,控件的宽度和高度通常在布局完成后才能准确获取。在`onCreate`方法中直接获取控件尺寸可能会得到0,因为此时布局尚未完全绘制。为获取真实尺寸,可以采取以下策略: 1. **方法一**: 在`...

    android自定义控件CircleImageVIew

    在Android开发中,自定义控件是提升应用独特性和用户体验的重要手段。CircleImageView是一个流行的库,它允许开发者将普通的ImageView转换为圆形展示,通常用于显示用户头像或其他需要圆形显示的图片。本教程将深入...

    android获取屏幕宽高与获取控件宽高(三种方法)

    Android 获取屏幕宽高与获取控件宽高的方法 Android 开发中,获取屏幕宽高和控件宽高是一个非常重要的环节。今天,我们将介绍三种获取屏幕宽高的方法和获取控件宽高的方法。 一、获取屏幕宽高 在 Android 中,有...

    android控件动态使用_动态控件创建

    ### Android控件动态使用与创建详解 #### 一、引言 在Android开发过程中,界面设计通常是通过XML布局文件来完成的。这种方式虽然方便快捷,但在某些场景下却显得不够灵活,例如需要根据用户操作或者数据变化实时...

Global site tag (gtag.js) - Google Analytics