android 获取组件尺寸大小

原创 2015年11月19日 11:47:01

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

这是为什么呢?

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

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

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

方法一 
//测量方法
?
1
2
3
4
5
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();

方法二 
?
1
2
3
4
5
6
7
8
9
//增加组件绘制之前的监听
ViewTreeObserver vto =view.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
   @Override
    public booleanonPreDraw() {
       int height =view.getMeasuredHeight();
       int width =view.getMeasuredWidth();    
   }
});
方法三 : 
?
1
2
3
4
5
6
7
8
9
10
//增加整体布局监听
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】利用自定义View的重绘实现拖动移动,获取组件的尺寸

下面利用一个app来说明如何利用自定义View的重绘实现拖动移动,获取组件的尺寸。 如下图,触摸拖动,或者轻轻点击屏幕都能移动图片。如果碰到文字,则会弹出提示。 这里是利用自定义View的...

Android 获取屏幕尺寸与密度     遇到一个问题,我的地图浮标图片在WVGA手机上正好,在QVGA上就显的太大,所以我要根据屏幕的不同调整浮标的大小使其在QVGA大小合适。有的同事提出了依据

Android 获取屏幕尺寸与密度     遇到一个问题,我的地图浮标图片在WVGA手机上正好,在QVGA上就显的太大,所以我要根据屏幕的不同调整浮标的大小使其在QVGA大小合适。有...

Android实用视图动画及工具系列之四:多状态CheckBox,可设置大小尺寸和设置不可用的复选框

Android实用视图动画及工具系列之四:多状态CheckBox,可设置大小尺寸和设置不可用的复选框,大家都知道在Android5.0以前,Android自带的checkbox不可以通过width和h...

android 计算Bitmap占byte大小,以及Bitmap中像素数的计算,另外再给出一个按尺寸裁剪图片的方法

一,计算Bitmap的Byte大小 1.在SDK >= 3.1  直接调用 Bitmap的  getByteCount() 方法。 2.在SDK bitmap.getRowBytes() * ...

android 裁剪图片大小 控制图片尺寸 .

用BitmapFactory获取适合屏幕大小的图片 和自带的图片裁剪工具 [java] view plaincopyprint?    [java] view plain...

android 裁剪图片大小 控制图片尺寸

用BitmapFactory获取适合屏幕大小的图片 和自带的图片裁剪工具 [java] view plaincopy    [java] ...

Atitit nodejs js 获取图像分辨率 尺寸 大小 宽度 高度

Atitit nodejs js 获取图像分辨率 尺寸 大小 宽度 高度   使用gm类库有点麻烦,太大了。直接使用-images 得了。。安装这个模块即可。。。 还有image-size ...
  • attilax
  • attilax
  • 2017年02月03日 17:28
  • 675

java基础—java获取图片的大小和尺寸(本地& 服务器)

java基础—java获取图片的大小和尺寸(本地& 服务器) java获取图片的大小和尺寸,有两种获取的源,一种是读取本地的图片获取大小和尺寸,一种是通过服务器上图片的地址获取图片的尺寸!下面整理出这...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 获取组件尺寸大小
举报原因:
原因补充:

(最多只允许输入30个字)