android屏幕各部位介绍

本文详细介绍了Android应用UI的层级结构,从DecorView到具体的自定义布局文件,通过实例图解了状态栏、标题栏和内容区域等各部分的获取方法及尺寸计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

     先上几张图:

                                                      

                                       图一:状态栏                                                                            图二:标题栏                                                             图三:内容区域

 

 

                     

                    图四:整个屏幕区域                                                          图五:标题加内容区

 

     整个Activity加载时可分为以下几层:

            第一层是DecorView(继承FrameLayout),整个屏幕(包括状态栏,标题栏以及剩余部分由系统创建.类路径:com.android.internal.policy.impl.PhoneWindow$DecorView

            第二层LinearLayout,布局中包括两个Framelayout.第一个布局用于显示标题栏,第二个FrameLayout布局中显示就是我们自定义的布局文件

那么开始讲解这五个图,DecorView即图四中红线圈的部分(以下简称图四)

     获取方式:

                  DecorView   view=getWindow().getDecorView()

                  int width = view.getWidth();

                  int height = view.getHeight();

与下面方式获取的宽高是一样的

int width = getWindowManager().getDefaultDisplay().getWidth();

int height = getWindowManager().getDefaultDisplay().getHeight();

图五画红线部分(以下简称图五),获取方式:

                   Rect outRect = new Rect();

                   View view = getWindow().getDecorView();

                   view.getWindowVisibleDisplayFrame(outRect);

                   int width = outRect.width();

                   int height = outRect.height();

图三画红线部分(以下简称图三),获取方式:

                View view2 = getWindow().findViewById(Window.ID_ANDROID_CONTENT);

                int width = view2.getWidth();

                int height = view2.getHeight();

如此一来,图一和图二的宽和高就可以依据图三,图四,图五的宽和高加减法即可求得。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值