android获得状态栏和标题栏高度

Posted on 2011-07-15 17:42  codingX  阅读(3149)  评论(0)    收藏  举报
 1 package com.aslibra.test;
2
3 import android.app.Activity;
4 import android.graphics.Rect;
5 import android.os.Bundle;
6 import android.util.Log;
7 import android.view.Window;
8 import android.widget.ImageView;
9
10 public class test extends Activity {
11
12   ImageView iv;
13
14   @Override
15   public void onCreate(Bundle savedInstanceState) {
16     super.onCreate(savedInstanceState);
17     setContentView(R.layout.main);
18
19     iv = (ImageView) this.findViewById(R.id.ImageView01);
20     iv.post(new Runnable()
21     {
22       public void run()
23       {
24         viewInited();
25
26       }
27     });
28     Log.v("test", "== ok ==");
29   }
30
31   private void viewInited(){
32     Rect rect= new Rect();
33     Window window= getWindow();
34     iv.getWindowVisibleDisplayFrame(rect);
35     int statusBarHeight= rect.top;
36     int contentViewTop= window.findViewById(Window.ID_ANDROID_CONTENT).getTop();
37     int titleBarHeight= contentViewTop - statusBarHeight;
38     //测试结果:ok之后 100多 ms 才运行了
39     Log.v("test", "=-init-= statusBarHeight="+statusBarHeight+
40         " contentViewTop="+contentViewTop+
41         " titleBarHeight="+titleBarHeight);
42   }
43
44   /*
45   * 07-14 02:36:48.449: VERBOSE/test(1385): == ok ==
46   * 07-14 02:36:48.558: VERBOSE/test(1385): =-init-= statusBarHeight=25 contentViewTop=50 titleBarHeight=25
47   */
48 }

代码转自http://www.aslibra.com/blog/post/android-getting-height-of-status-and-title-bar.php

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3