本文实例讲述了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编程获取组件尺寸大小的方法相关推荐

  1. java编程获取屏幕分辨率_Java编程获取当前屏幕分辨率的方法示例

    本文实例讲述了Java编程获取当前屏幕分辨率的方法.分享给大家供大家参考,具体如下: /** * This class implements the functionality of fetching ...

  2. 怎么编辑图片大小?图片如何调整尺寸大小?

    图片使用过程中经常遇到尺寸不符合要求的情况,那么就肯定需要对修改图片大小,对于电脑小白来说改图片大小也算是比较困难的事情,不知道怎么去操作.其实图片尺寸修改并没有那么难,只需要按照小编今天分享的方法来 ...

  3. Android 获取图片尺寸大小的方法

    一.获取图片大小有两张情况代码如下: package com.jhq.picdemo;import android.Manifest; import android.content.pm.Packag ...

  4. Android 获取图片尺寸大小

    文章目录 1.简介 2.功能实现 1)添加sd 卡读写权限 2).功能代码 3.log显示 4.不同位置获取图片的路径的转化 Bitmap 1) drawable 里面 2)assets 文件 3)S ...

  5. android xml java混合编程_Android | 自动调整文本大小的 TextViews

    简评:Auto-Sizing TextViews -- 当 TextView 的布局边界尺寸发生变化时,文本大小可以跟着自动缩放调整. 有时候我们需要 TextView 根据放入的内容来改变其文本大小 ...

  6. 获取上传图片的大小 php,thinkphp5 获取上传图片的大小和信息

    thinkphp5 获取上传图片的大小和信息 先看一下打印出对象信息如下.object(think\File)#19 (13) { ["error":"think\Fil ...

  7. java中比较两个文件的大小_Java实现获取文件大小的几种方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 目前Java获取文件大小的方法有两种: 1.通过file的length()方法获取: 2.通过流式方法获取: 通过流式方法又有两种,分别是旧的java.i ...

  8. php排大小函数,PHP获取文件夹大小函数

    // 获取文件夹大小 function getDirSize($dir) { $handle = opendir($dir); while (false!==($FolderOrFile = read ...

  9. android获取位图字节数,Android中获取图片尺寸大小两种方法

    两种方法  建议用第二种 private void getPictureSize(String path) { /*第一种直接把bitmap加载到内存中,通过对bitmap的测量, 得出宽高,由于这个 ...

最新文章

  1. VMWare ubuntu虚拟机每次开机要等待1分30秒解决方案(A start job is running for dev-disk-by\x2duui...)(修改真实swap UUID)
  2. poj2955 Brackets 最大括号匹配 区间动态规划
  3. Hibernate各种主键生成策略与配置详解
  4. 剑指Offer_61_序列化二叉树
  5. 个人材料(上报公司)
  6. ASP.NET 5 - $.ajax post JSON.stringify(para) is null
  7. vscode用作markdown入门2--代码上下标目录字体
  8. Bootstrap输入框组中可以使用的元素
  9. kernel笔记——库文件与系统调用
  10. MySQL-删除表(drop、truncate、delete)区别
  11. TFS与Git结合进行代码管理
  12. 钢铁雄心II(HOI2)作弊码合辑
  13. 重磅:GB/T 35273-2020《信息安全技术个人信息安全规范》最新解读
  14. 怀集天气预报软件测试,【天气】怀集要入夏?这份天气预报告诉你答案!
  15. PPT修改母版页码(亲测可用)
  16. SecureCRT免安装版免费下载
  17. 抛错java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit
  18. 神经网络实现猫的种类识别
  19. 高德地图placesearch 搜索结果生成自定义marker
  20. [USACO18JAN] Lifeguards S

热门文章

  1. jpa 人大金仓数据库方言_生态丨参展CITE2020 人大金仓全栈数据库管理系统强势来袭!...
  2. 关于bash如何进行并发执行!
  3. 如何为IE9平台预览版穿上外衣?
  4. 系统安装教程:Windows7硬盘安装方法详细图文教程及使用工具下载
  5. 剑指offer(C++)-JZ33:二叉搜索树的后序遍历序列(数据结构-树)
  6. linux文件末尾 m,Linux7-删除nginx配置文件末尾的^M字符
  7. python怎么创建变量balance_在Python中将变量从一个函数修改为另一个函数
  8. vim linux python3,centos7 python3.7+vim8
  9. 接口测试——jemter生成HTML测试报告
  10. 设计模式(读书笔记)