Android / 程序开发 · 2022年3月21日 0

Android View无法获取宽高问题

采用ViewTreeObserverh获取监听效果实现当视图已经绘画后进行宽高处理


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 ViewTreeObserver vto = imageView.getViewTreeObserver();
  vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
      public boolean onPreDraw() {
//         int height = imageView.getMeasuredHeight();
//         int width = imageView.getMeasuredWidth();
           imageView.measure(binding.bannerImg.getMeasuredWidth(), 0);
           int height = imageView.getMeasuredHeight();
           if (height > bannerHeight) {
                bannerHeight = height;
                layoutParams.height = bannerHeight;
                binding.bannerImg.setLayoutParams(layoutParams);
           }
           return true;
       }
 });