Android编程获取组件尺寸大小的方法

 更新时间:2017年03月27日 14:09:59   作者:xueyangshipin  
这篇文章主要介绍了Android编程获取组件尺寸大小的方法,结合实例形式分析了Android绘制组件之前获取该组件大小的3种常见操作技巧,需要的朋友可以参考下

本文实例讲述了Android编程获取组件尺寸大小的方法。分享给大家供大家参考,具体如下:

在oncreate()中利用view.getWidth()或是view.getHeiht()来获取view的宽和高,看似没有问题,其实他们去得值是0,并不是你想要的结果?

这是为什么呢?

在调用oncreate()方法时,界面处于不可见状态,内存加载组件还没有绘制出来,你是无法获取他的尺寸。

那如何在绘制组件之前能获取到该组件的尺寸大小呢?

这里有三种方法,经过验证的:

方法一 :

//测量方法
int width =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
int height =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);
view.measure(width,height);
int height=view.getMeasuredHeight();
int width=view.getMeasuredWidth();

方法二 :

//增加组件绘制之前的监听
ViewTreeObserver vto =view.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
  @Override public ooleanonPreDraw() {
    int height =view.getMeasuredHeight();
    int width =view.getMeasuredWidth();
  }
});

方法三 :

//增加整体布局监听
ViewTreeObserver vto = view.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener(){
  @Override public voidonGlobalLayout() {
   view.getViewTreeObserver().removeGlobalOnLayoutListener(this);
  int height =view.getMeasuredHeight();
  int width =view.getMeasuredWidth();
  }
});

那么,在activity进入运行期时,组件的尺寸获取方法就很简单了,直接getWidth()和getHeight().

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android开发入门与进阶教程》、《Android调试技巧与常见问题解决方法汇总》、《Android基本组件用法总结》、《Android视图View技巧总结》、《Android布局layout技巧总结》及《Android控件用法总结

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • Android miniTwitter登录界面开发实例

    Android miniTwitter登录界面开发实例

    这篇文章主要为大家详细介绍了Android miniTwitter登录界面开发实例,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • Android 中添加水平线和垂直线方法总结

    Android 中添加水平线和垂直线方法总结

    这篇文章主要介绍了Android 中添加水平线和垂直线方法总结的相关资料,需要的朋友可以参考下
    2017-02-02
  • 分享Android仿刮奖效果控件

    分享Android仿刮奖效果控件

    这篇文章主要为大家分享了Android仿刮奖效果控件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09
  • flutter仿微信底部图标渐变功能的实现代码

    flutter仿微信底部图标渐变功能的实现代码

    这篇文章主要介绍了flutter仿微信底部图标渐变功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • Android AOP基本用法全面详解

    Android AOP基本用法全面详解

    这篇文章主要为大家介绍了Android AOP基本用法全面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Android MVP模式实战教程

    Android MVP模式实战教程

    这篇文章主要为大家详细介绍了Android MVP模式实战教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Android识别NFC芯片制造商的方法

    Android识别NFC芯片制造商的方法

    这篇文章介绍了Android识别NFC芯片制造商的方法,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-11-11
  • android TextView不用ScrollViewe也可以滚动的方法

    android TextView不用ScrollViewe也可以滚动的方法

    这篇文章主要介绍了android TextView不用ScrollViewe也可以滚动的方法,很简单实用的代码,大家参考使用吧
    2013-11-11
  • go语言之美迅速打rpm包实现详解

    go语言之美迅速打rpm包实现详解

    这篇文章主要为大家介绍了go语言之美迅速打rpm包实现详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • 详解Android的网络数据存储

    详解Android的网络数据存储

    LeanCloud是一种简单高效的数据和文件存储服务,本文主要介绍了利用LeanCloud来进行网络数据的存储的实现方法。具有很好的参考价值,需要的朋友一起来看下吧
    2016-12-12

最新评论