麓谷官网欢迎你访问长沙北大青鸟麓谷校区,支持你成为一个受人尊重的专业人才!
当前位置: 首页 > 青鸟知识 > android

Android取得statusBar高度

来源:湖南新途教育|发布时间:2016-05-21|浏览量:

学IT,好工作

就读长沙岳麓职业培训学校

求学热线: 400-160-2868

在画UI进程中,有些环境下需求明白statusBar高度:

网上有些方式是多么的:

Rect frame = new Rect();  getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);  int statusBarHeight = frame.top;  Log.v("@@@@@@", "the statusbar Height is : " + statusBarHeight);

近似:

int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();  //statusBarHeight是下面所求的情况栏的高度  int titleBarHeight = contentTop - statusBarHeight;  Log.v("@@@@@@", "the titleBar Height is : " + titleBarHeight); 

或:

Rect rect = new Rect();  MainActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);  View view = MainActivity.this.getWindow().findViewById(Window.ID_ANDROID_CONTENT);  int topS = rect.top;//情况栏高度  int topT = rect.height() - view.getHeight();  Log.v("@@@@@@", "the statusbar Height is : " + topS);  Log.v("@@@@@@", "the titleBar Height is : " + topT);

在我的手机上,均不可。

后:

public static int getStatusBarHeight(Context context){  Class ? c = null;  Object obj = null;  Field field = null;  int x = 0, statusBarHeight = 0;  try {  c = Class.forName("com.android.internal.R$dimen");  obj = c.newInstance();  field = c.getField("status_bar_height");  x = Integer.parseInt(field.get(obj).toString());  statusBarHeight = context.getResources().getDimensionPixelSize(x);  Log.v("@@@@@@", "the status bar height is : " + statusBarHeight);  } catch (Exception e1) {  e1.printStackTrace();  return statusBarHeight;  } 

经测试可行。


上一篇:Android开辟适用小东西

下一篇:View类和自界说控件与实例

扫码关注微信公众号了解更多详情

跟技术大咖,专业导师一起交流学习

姓名
电话
Q Q

在线留言

请您把问题留下,我们为您提供专业化的解答!

QQ咨询
  1. 招生问答
  2. 热门点击
  3. 最新更新
  4. 推荐文章

关于我们

学校成就

就业保障

联系方式

联系电话:400-160-2868

在线报名

预约报名

备案号:湘ICP备2020021619号-1
地址:湖南省长沙市高新区麓谷麓松路679号 版权所有:长沙市岳麓职业培训学校

在线咨询
课程咨询 学费咨询 学费分期 入学测试 免费预约 来校路线
初中生 高中生 待业者
400-160-2868

在线客服