view的宽高获取不到
来源:互联网 发布:爱淘宝一元购物券 编辑:程序博客网 时间:2024/05/14 21:22
当我们在onCreate()里面获取控件的宽度和高度是0的时候,可以用下面的方法:
/**方法一**/
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());
}
});
方法一: 比其他的两个方法多了一次计算,也就是多调用了一次onMeasure()方法,该方法虽然看上去简单,但是如果要目标控件计算耗时比较大的话(如listView等),不建议使用.
方法二,它的回调方法会调用很多次,并且滑动TextView的时候任然会调用,所以不建议使用.
方法三,比较合适.
当然了:这三个方法都有各种不同的用处,自己根据自己的情况,自行选择
0 0
- view的宽高获取不到
- 获取View的宽高
- 获取view宽高
- 获取view宽高
- chrome下jquery获取不到图片的宽高
- View 的宽高的获取
- 获取view的高和宽
- Android获取View的高宽
- Android 如何获取view的宽高
- 浅谈自定义View的宽高获取
- 获取View的宽高信息
- Android 获取View的宽高
- Android获取View的宽高
- 用addOnGlobalLayoutListener获取View的宽高
- Android获取View的宽高
- 在onCreate()获取View的宽高
- 获取View的宽高时机
- Activity中获取view的宽高
- My Qt随笔笔记
- 如何让你的电脑一台变两台
- 中央纪委对巡视发现的苏荣、申维辰、
- typedef void (*funcptr)(void
- SQL SERVER 如何建立自动备份的维护计划
- view的宽高获取不到
- apache
- linux安装hadoop
- 视频交互、视频会议、语音对讲、IM、开户等软件的基本流程和开发指南
- html <meta>元素的常用方法
- ubuntu设置静态IP地址方法
- 使用ATL创建窗口的步骤
- 图片变灰
- linux的8723a的wifi