Android 获取View宽高三种方法的使用场景
2016-12-07 18:11
429 查看
Android 获取View宽高三种方法的使用场景
第一种measure();int w = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); int h = View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED); mView.measure(w, h); int Width = mView.getMeasuredWidth(); int Height = mView.getMeasuredHeight();
measure这种方法适用直接测量一个View,如ImageView TextView等。
2.第二种view.post()
view.post(new Runnable() { @Override public void run() { int height = view.getHeight(); } });
3.第三种对View 的监听,布局完成后回调.
view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { view.postDelayed(new Runnable() { @Override public void run() { int height = view.getHeight(); } }, 300); } });
说明:由于第二种和第三种使用场景一样,所以就放在一起说了。
第二种和第三种适用于拿到addView之后容器的宽高,如用了一个LinearLayout代码add了View之后想拿到
LinearLayout容器的宽度就要使用第二种或第三种,用第一种方法拿到的是错误的宽高。
以上说明都是本人在实际项目中踩的坑,以此记录。
相关文章推荐
- android获取view宽高的几种方法,解决获取高宽为0问题
- Android获取view尺寸的三种方法
- android在oncreate()方法中获取view的宽高width,height
- android获取屏幕宽高与获取控件宽高(三种方法)
- Android获取当前位置的三种方式及其使用方法
- Android 获取view的宽高方法
- Android 使用WebView 时获取数据出现编码不正确的解决方法
- android View的绘制过程和获取组件高宽值的三种方法
- Android Smart Image View使用方法--从url获取图片或从通讯录获取图片,支持缓存
- android webview中使用Java调用JavaScript方法并获取返回值_Android
- Android——View宽高的设置和多种获取宽高的方法、layout_grivaty与grivaty的区别
- android中获取View宽高的方法
- Android获取View尺寸的三种方法
- android获取view宽高的几种方法 - ysl_longer
- Android开发显示之前获取view的宽高方法
- android获取屏幕宽高与获取控件宽高(三种方法)
- Android中获取View宽高方法
- Android中获取View宽高方法
- Android WebView中使用Java调用JavaScript方法并获取返回值
- android获取view宽高的几种方法