Android如何获取屏幕、状态栏及标题栏的高度详解

Android如何获取屏幕、状态栏及标题栏的高度详解,第1张

概述前言本文主要给大家介绍了关于Android获取屏幕、状态栏标题栏高度的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

前言

本文主要给大家介绍了关于AndroID获取屏幕、状态栏及标题栏高度的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧

在开始之前,先来看一张图:


绿色区域:屏幕区域 蓝色区域:状态栏区域 红色区域:标题栏区域 黄色区域:vIEw绘制区域

1.AndroID手机屏幕的高度

整个手机使用发亮,不使用变黑的部分,绿色区域

获取屏幕的高度方法一

  displayMetrics dm = new displayMetrics();  getwindowManager().getDefaultdisplay().getMetrics(dm);  Log.e("TAG","屏幕高:" + dm.heightPixels);

获取屏幕的高度方法二

displayMetrics displayMetrics = getResources().getdisplayMetrics();  Log.e("TAG","screenHeight"+displayMetrics.heightPixels);

2.AndroID手机状态栏的高度(蓝色区域)

状态栏指的是,手机最上方显示,系统时间,电量等等区域。

获取状态栏高度方法一

int statusbarHeight1 = -1;  //获取status_bar_height资源的ID  int resourceID = getResources().getIDentifIEr("status_bar_height","dimen","androID");  if (resourceID > 0) {   //根据资源ID获取响应的尺寸值   statusbarHeight1 = getResources().getDimensionPixelSize(resourceID);  }  Log.e("TAG","方法1:" + statusbarHeight1); 

获取状态栏高度方法二

int statusbarHeight1 = -1;  //获取status_bar_height资源的ID  int resourceID = getResources().getIDentifIEr("status_bar_height","方法1:" + statusbarHeight1); 

获取状态栏高度方法二

 int statusbarHeight2 = -1;   try {    Class<?> clazz = Class.forname("com.androID.internal.R$dimen");    Object object = clazz.newInstance();    int height = Integer.parseInt(clazz.getFIEld("status_bar_height")      .get(object).toString());    statusbarHeight2 = getResources().getDimensionPixelSize(height);   } catch (Exception e) {    e.printstacktrace();   }   Log.e("TAG","方法2:" + statusbarHeight2); 

获取状态栏高度方法三:

状态栏高度 = 屏幕高度 - 应用区高度

//屏幕   displayMetrics dm = new displayMetrics();   getwindowManager().getDefaultdisplay().getMetrics(dm);   //应用区域   Rect outRect1 = new Rect();   getwindow().getDecorVIEw().getwindowVisibledisplayFrame(outRect1);   int statusbar = dm.heightPixels - outRect1.height(); //状态栏高度=屏幕高度-应用区域高度   Log.e("WangJ","方法3:" + statusbar); 

3.AndroID手机应用区域(红+黄区域)

手机应用区域=标题栏+VIEw绘制区域(setcontent()中设置的布局)

获取手机以应用区域

//应用区域  Rect outRect1 = new Rect();  getwindow().getDecorVIEw().getwindowVisibledisplayFrame(outRect1);   Log.e("TAG","应用区高" + outRect1.height());

4.AndroID手机标题高度(红色区域)

int vIEwtop = getwindow().findVIEwByID(Window.ID_ANDROID_CONTENT).gettop(); Log.e("TAG","标题栏:" + vIEwtop);

5.AndroID手机绘制区域高度(黄色区域)

Rect outRect2 = new Rect();  getwindow().findVIEwByID(Window.ID_ANDROID_CONTENT).getDrawingRect(outRect2);  Log.e("TAG","VIEw绘制区域高度:" + outRect2.height());

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。

总结

以上是内存溢出为你收集整理的Android如何获取屏幕、状态栏及标题栏的高度详解全部内容,希望文章能够帮你解决Android如何获取屏幕、状态栏及标题栏的高度详解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1144109.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存