View - 获取某个view 宽高的四种方法
程序员文章站
2022-03-25 16:41:44
...
1.Activity# onWindowFousChanged
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if(hasFocus){
int height = main_viewpager.getMeasuredHeight();
int width = main_viewpager.getMeasuredWidth();
}
}
多次调用在窗口得到焦点和失去焦点
2.view.post(runnable)
@Override
protected void onStart() {
super.onStart();
main_viewpager.post(new Runnable() {
@Override
public void run() {
int height = main_viewpager.getMeasuredHeight();
int width = main_viewpager.getMeasuredWidth();
}
});
}
3.ViewTreeObserver
@Override
protected void onStart() {
super.onStart();
ViewTreeObserver viewTreeObserver = main_viewpager.getViewTreeObserver();
viewTreeObserver.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
main_viewpager.getViewTreeObserver().removeOnGlobalLayoutListener(this);
int height = main_viewpager.getMeasuredHeight();
int width = main_viewpager.getMeasuredWidth();
}
});
}
View 树的状态改变,onGlobalLayout 会被调用多次
4.view.measure(int widthMeasurespec, int heightMeasureSpec)
上一篇: # CSS 3D 动画
下一篇: MySQL之视图
推荐阅读
-
当view为wrap_conten时获取一个view的具体宽高
-
Android利用反射机制调用截屏方法和获取屏幕宽高的方法
-
Android中通过view方式获取当前Activity的屏幕截图实现方法
-
Android之View的知识(getWidth() 和getMeasuredWidth区别 如何在oncreate获取宽高)
-
微信小程序实现动态获取元素宽高的方法分析
-
Android利用反射机制调用截屏方法和获取屏幕宽高的方法
-
js获取屏幕以及元素宽高的方法
-
Android 获得View宽高的几种方式总结
-
Android获取手机屏幕宽高、状态栏高度以及字符串宽高信息的方法
-
android不读入内存获取图像宽高信息的方法