`

Android在onCreate()中获得控件尺寸 (转)

 
阅读更多

方法如下:

 

@Override 
  public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.main); 
      final ImageView imageView = (ImageView) findViewById(R.id.imageview);       
      int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
      int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
      imageView.measure(w, h); 
      int height =imageView.getMeasuredHeight();
      int width =imageView.getMeasuredWidth();
      textView.append("\n"+height+","+width);
      System.out.println("执行完毕.."+System.currentTimeMillis()); 
  }
//------------------------------------------------方法一 
int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); 
imageView.measure(w, h); 
int height =imageView.getMeasuredHeight(); 
int width =imageView.getMeasuredWidth(); 
textView.append("\n"+height+","+width); 
//-----------------------------------------------方法二 
ViewTreeObserver vto = imageView.getViewTreeObserver(); 
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { 
    public boolean onPreDraw() { 
        int height = imageView.getMeasuredHeight(); 
        int width = imageView.getMeasuredWidth(); 
        textView.append("\n"+height+","+width); 
        return true; 
    } 
}); 
//-----------------------------------------------方法三    
ViewTreeObserver vto2 = imageView.getViewTreeObserver();   
vto2.addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
    @Override   
    public void onGlobalLayout() { 
        imageView.getViewTreeObserver().removeGlobalOnLayoutListener(this);   
        textView.append("\n\n"+imageView.getHeight()+","+imageView.getWidth()); 
    }   
});     

 

分享到:
评论

相关推荐

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

    在`OnCreate`方法中直接尝试获取这些尺寸可能无法得到正确的结果,因为`OnCreate`主要用于初始化数据,并且在视图绘制之前执行。在屏幕渲染的过程中,控件的测量和布局发生在视图树的绘制阶段。 首先,我们来看一下...

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

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

    Android-TrapezoidPartsView-梯形控件

    总结来说,"Android-TrapezoidPartsView-梯形控件"是一个针对Android平台的自定义视图组件,它允许开发者在应用程序中创建和操作梯形形状,同时支持用户交互。这个组件通过自定义绘图和事件处理,为Android界面设计...

    Android 动态生成多个控件并实现点击

    在Android开发中,有时我们需要根据特定需求动态地创建和管理UI元素,比如在用户交互时按需生成按钮、文本输入框等控件。这个过程涉及到Android的布局管理、控件的实例化、事件监听以及视图层次结构的构建。下面我们...

    Android使用注解查找控件

    - 使用`@BindView(R.id.my_button)`注解,将控件ID与成员变量关联,Butter Knife会在onCreate()方法中自动执行绑定操作。 - 不需要手动调用findViewById(),降低了代码的冗余。 5. **Dagger的使用** - Dagger是...

    android获取XML中使用的控件(Version 0.1)-32位

    在Android开发中,XML文件是布局设计的核心,它定义了应用程序界面的各种控件,如按钮、文本框等。为了提高开发效率,开发者通常会避免手动编写这些基础代码,转而使用自动化工具。"获取XML中使用的控件(Version 0.1...

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

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

    android 时间日期控件

    在Android开发中,时间日期控件是用户界面中常见的组件,用于让用户选择日期或时间。在本示例中,我们关注的是如何在Android应用中添加并使用这些控件。我们将探讨如何通过添加按钮来触发日期和时间的选择,并将选定...

    android 自定义控件 小球圆周运动

    在Android开发中,自定义控件是实现独特用户界面效果的重要手段。本教程将深入探讨如何创建一个自定义控件,让小球沿着圆周进行运动。这个过程涉及到Canvas绘图、动画处理以及Android帧率控制等多个核心知识点。 ...

    Android动态点点省略号闪烁效果的等待控件

    在Android开发中,有时我们需要为用户展示一个正在加载或处理数据的状态,这时就需要用到等待控件。"Android动态点点省略号闪烁效果的等待控件"是一种常见的设计,它通过连续显示“...”来表示程序正在进行后台操作...

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

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

    android自定义时钟控件

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

    android学习之控件的显示和隐藏

    通过以上介绍,我们可以看到,在Android开发中控制控件的显示与隐藏是非常简单和直观的。无论是通过XML布局文件还是Java/Kotlin代码,都可以轻松实现这一功能。了解这些基础知识对于构建用户友好的界面和提高用户...

    8. android Tab 选项卡控件

    在Android开发中,Tab选项卡控件是一种常见的用户界面组件,用于分割并展示大量内容,让用户可以在多个视图之间轻松切换。本教程将详细介绍如何在Android应用中实现一个简单的Tab选项卡控件。 首先,我们需要引入...

    Android TextView 45度倾斜旋转效果

    在Android开发中,TextView是用于显示文本的基本组件。在某些设计需求中,我们可能需要将TextView的文字或整个组件进行一定角度的倾斜展示,比如45度。本篇将详细讲解如何实现Android TextView的45度倾斜旋转效果。 ...

    android 超豪华的手机控件

    根据给定的信息,本文将对“Android超豪华的手机控件”进行详细的解析,并通过一个具体的实例——EditText与TextView的互动应用,展示如何利用Android SDK中的控件来实现高效的用户界面设计。 ### Android 超豪华的...

    android里如何在子线程中如何更新主线程的控件

    因此,要在子线程中更新主线程的控件,你需要利用Android的消息传递机制,主要是通过`Message`和`Handler`来实现。 首先,理解`Handler`和`Looper`的角色。`Handler`是消息处理器,负责接收和处理来自其他线程的...

    Android_ListView控件基本用法

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

Global site tag (gtag.js) - Google Analytics