Android平台中获取状态栏的高度代码实现

来源:互联网 发布:解码软件下载 编辑:程序博客网 时间:2024/06/04 19:20

Android平台中获取状态栏的高度代码实现

[java] view plaincopy
  1. /** 
  2.  *  
  3.  * @param activity 
  4.  * @return > 0 success; <= 0 fail 
  5.  */  
  6. public int getStatusHeight(Activity activity){  
  7.     int statusHeight = 0;  
  8.     Rect localRect = new Rect();  
  9.     activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect);  
  10.     statusHeight = localRect.top;  
  11.     if (0 == statusHeight){  
  12.         Class<?> localClass;  
  13.         try {  
  14.             localClass = Class.forName("com.android.internal.R$dimen");  
  15.             Object localObject = localClass.newInstance();  
  16.             int i5 = Integer.parseInt(localClass.getField("status_bar_height").get(localObject).toString());  
  17.             statusHeight = activity.getResources().getDimensionPixelSize(i5);  
  18.         } catch (ClassNotFoundException e) {  
  19.             e.printStackTrace();  
  20.         } catch (IllegalAccessException e) {  
  21.             e.printStackTrace();  
  22.         } catch (InstantiationException e) {  
  23.             e.printStackTrace();  
  24.         } catch (NumberFormatException e) {  
  25.             e.printStackTrace();  
  26.         } catch (IllegalArgumentException e) {  
  27.             e.printStackTrace();  
  28.         } catch (SecurityException e) {  
  29.             e.printStackTrace();  
  30.         } catch (NoSuchFieldException e) {  
  31.             e.printStackTrace();  
  32.         }  
  33.     }  
  34.     return statusHeight;  
  35. }  
在HTC G11,系统为官方4.04版本的手机上进行测试过,高度为 38。
0 0
原创粉丝点击