Android获取状态栏和标题栏的高度

简介:

1.获取状态栏高度:

decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。 
于是,我们就可以算出状态栏的高度了。

  1. Rect frame = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);int statusBarHeight = frame.top;  

2.获取标题栏高度:

getWindow().findViewById(Window.ID_ANDROID_CONTENT)这个方法获取到的view就是程序不包括标题栏的部分,然后就可以知道标题栏的高度了。

[java]  view plain  copy
  1. int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();//statusBarHeight是上面所求的状态栏的高度int titleBarHeight = contentTop - statusBarHeight  

例子代码:

[java]  view plain  copy
  1. package com.cn.lhq;import Android.app.Activity;import android.graphics.Rect;import android.os.Bundle;import android.util.Log;import android.view.Window;import android.widget.ImageView;public class Main extends Activity {ImageView iv;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);iv = (ImageView) this.findViewById(R.id.ImageView01);iv.post(new Runnable() {public void run() {viewInited();}});Log.v("test", "== ok ==");}private void viewInited() {Rect rect = new Rect();Window window = getWindow();iv.getWindowVisibleDisplayFrame(rect);int statusBarHeight = rect.top;int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT).getTop();int titleBarHeight = contentViewTop - statusBarHeight;// 测试结果:ok之后 100多 ms 才运行了Log.v("test", "=-init-= statusBarHeight=" + statusBarHeight+ " contentViewTop=" + contentViewTop + " titleBarHeight="+ titleBarHeight);}}  
[xhtml]  view plain  copy
  1. <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"><ImageView android:id="@+id/ImageView01" android:layout_width="wrap_content" android:layout_height="wrap_content"/></LinearLayout>  






    本文转自 一点点征服   博客园博客,原文链接: http://www.cnblogs.com/ldq2016/p/6835368.html ,如需转载请自行联系原作者
相关文章
|
9月前
|
Java API Android开发
Android 最新实现沉浸式状态栏的效果
Android 最新实现沉浸式状态栏的效果
131 0
|
4天前
|
Android开发
Android 状态栏WiFi图标的显示逻辑
Android 状态栏WiFi图标的显示逻辑
19 0
|
2天前
|
搜索推荐 Android开发
自定义Android标题栏TitleBar布局
自定义Android标题栏TitleBar布局
|
18天前
|
XML 存储 测试技术
Android系统 添加动态控制SystemUI状态栏、导航栏和下拉菜单
Android系统 添加动态控制SystemUI状态栏、导航栏和下拉菜单
37 1
|
9月前
|
Java Android开发
Android 可折叠式标题栏的实现
Android 可折叠式标题栏的实现
117 0
|
10月前
|
XML Java API
Android 沉浸式状态栏必知必会
Android 沉浸式状态栏追根究底
472 0
|
11月前
|
Java 测试技术 API
Android透明状态栏和导航栏方案最终版
Android透明状态栏和导航栏方案最终版
562 0
|
12月前
|
Android开发
Android_标题栏左上角返回上一级
1 先获取到顶部导航栏 ActionBar supportActionBar=getSupportActionBar();
71 0
|
Android开发
Android10.0 导航栏和状态栏动态控制合集
Android10.0 导航栏和状态栏动态控制合集
131 0
|
Java Shell API
Android源码(6.0和8.1) 屏蔽状态栏下拉和屏蔽导航栏显示
Android源码(6.0和8.1) 屏蔽状态栏下拉和屏蔽导航栏显示
412 0