资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

Android获得View宽高的几种方式总结-创新互联

《Android开发艺术探索》笔记:

创新互联科技有限公司专业互联网基础服务商,为您提供中国电信成都枢纽中心高防主机,成都IDC机房托管,成都主机托管等互联网服务。

在Activity的onCreate()或者onResume()中去获得View的高度的时候不能正确获得宽度和高度信息,这是因为 View的measure过程和Activity的生命周期不是同步执行的,因此无法保证Activity执行了onCreate onStart onResume时,某个View已经测量完毕了,如果还没有测量完,那么获得的宽高就是0。可以通过下面几种方式来获得:

1、onWindowFocusChanged

onWindowFocusChanged:View已经初始化完毕,宽高已经有了,需要注意onWindowFocusChanged会被调用多次,Activity得到焦点和失去焦点都会执行这个回调,见下图:


1、Activity首次进入的时候执行的方法


2、跳转到另一个Activity时


3、返回到当前Activity时
可见当执行onResume和onPause时,onWindowFocusChanged都会被调用。

 @Override
 public void onWindowFocusChanged(boolean hasFocus) {
   super.onWindowFocusChanged(hasFocus);
   if (hasFocus) {
     //获得宽度
     int width = view.getMeasuredWidth();
     //获得高度
     int height = view.getMeasuredHeight();
   }
 }

网站名称:Android获得View宽高的几种方式总结-创新互联
文章网址:http://cdkjz.cn/article/dpgode.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220