源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android 获取屏幕高度,标题高度,状态栏高度(实例代码)

  • 时间:2021-05-11 11:16 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android 获取屏幕高度,标题高度,状态栏高度(实例代码)
[b]通过View提供的方法获取高度方式有两种:[/b] [b]1,[/b] 当前显示的view中直接获取当前view高宽 [b]2,[/b] 通过Activity的getWindow().findViewById(Window.ID_ANDROID_CONTENT)获取系统当前显示的 view根(是一个framelayout对象),android绘制会将要绘制的view放置在framelayout中绘制。 [b]Display对象获取屏幕高宽 :[/b] [img]http://files.jb51.net/file_images/article/201311/201311020925252.jpg[/img] 获取display对象 Activity中getWindowManager().getDefaultDisplay() [b]getWidth()[/b] 返回显示界面宽度即屏幕宽度 [b]getHeight()[/b] 返回显示界面高度即屏幕高度 由display对象设置DisplayMetrics高宽值,通过DisplayMetrics对象获取屏幕高宽,有点多此一举 : [b]getWidth()[/b] 返回显示界面宽度即屏幕宽度 [b]getHeight()[/b] 返回显示界面高度即屏幕高度 [b]常用一些值计算:[/b] [b]屏幕高宽 [/b]Canvas对象 、display对象和DisplayMetrics可获取屏幕的高宽 [b]状态栏高度 [/b]View的getWindowVisibleDisplayFrame(Rect outRect)附值outRect后,outRect.top()即是状态栏高度 [b]标题高度 [/b]View的getWindowVisibleDisplayFrame(Rect outRect1)附值outRect后,outRect.height()-view.getheight()即是标题高度。 [b]1.获取状态栏高度:[/b] decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。 于是,我们就可以算出状态栏的高度了。
[u]复制代码[/u] 代码如下:
 Rect frame = new Rect();   getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);   int statusBarHeight = frame.top;
[b]2.获取标题栏高度:[/b] getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。
[u]复制代码[/u] 代码如下:
int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();   //statusBarHeight是上面所求的状态栏的高度   int titleBarHeight = contentTop - statusBarHeight
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部