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

万事须己运,他得非我贤。这篇文章主要讲述Android获取状态栏和标题栏的高度相关的知识,希望能为你提供帮助。
版权声明:本文为博主原创文章,未经博主允许不得转载。
【Android获取状态栏和标题栏的高度】1.获取状态栏高度:
decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。
于是,我们就可以算出状态栏的高度了。
[Java] view plain copy

  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>    
 

    推荐阅读