让我们一起爱米兰
站内搜搜:
移动设备
请扫描二维码
或访问
m.milan100.com
您所在的位置 -> 米兰百分百 -> android相关 -> Android获取状态栏和标题栏的高度

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

点击数:1878 发表时间:2011-01-06 13:49:30 作者: 来源链接:
分享到:
分享到微信

1.获取状态栏高度:

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

 Rect frame = new Rect();   

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

 

2.获取标题栏高度:

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

 int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();   

  1. //statusBarHeight是上面所求的状态栏的高度   
  2. int titleBarHeight = contentTop - statusBarHeight  

例子代码:

 package com.cn.lhq;   

  1. import android.app.Activity;   
  2. import android.graphics.Rect;   
  3. import android.os.Bundle;   
  4. import android.util.Log;   
  5. import android.view.Window;   
  6. import android.widget.ImageView;   
  7. public class Main extends Activity {   
  8.     ImageView iv;   
  9.     @Override  
  10.     public void onCreate(Bundle savedInstanceState) {   
  11.         super.onCreate(savedInstanceState);   
  12.         setContentView(R.layout.main);   
  13.         iv = (ImageView) this.findViewById(R.id.ImageView01);   
  14.         iv.post(new Runnable() {   
  15.             public void run() {   
  16.                 viewInited();   
  17.             }   
  18.         });   
  19.         Log.v("test""== ok ==");   
  20.     }   
  21.     private void viewInited() {   
  22.         Rect rect = new Rect();   
  23.         Window window = getWindow();   
  24.         iv.getWindowVisibleDisplayFrame(rect);   
  25.         int statusBarHeight = rect.top;   
  26.         int contentViewTop = window.findViewById(Window.ID_ANDROID_CONTENT)   
  27.                 .getTop();   
  28.         int titleBarHeight = contentViewTop - statusBarHeight;   
  29.         // 测试结果:ok之后 100多 ms 才运行了   
  30.         Log.v("test""=-init-= statusBarHeight=" + statusBarHeight   
  31.                 + " contentViewTop=" + contentViewTop + " titleBarHeight="  
  32.                 + titleBarHeight);   
  33.     }   
  34. }  
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent">  
  6.     <ImageView    
  7.         android:id="@+id/ImageView01"    
  8.         android:layout_width="wrap_content"    
  9.         android:layout_height="wrap_content"/>  
  10. </LinearLayout>
0
很 好
0
一 般
0
差 劲
热门新闻
相关文章
上一篇: android重写onkeydown捕捉返回键
下一篇: adb工具的使用
评论区
匿名

返回首页 | 收藏本页 | 回到顶部
Copyright 2010. 米兰百分百 Powered By Bridge.
京ICP备15050557号