首页 > 系统 > Android > 正文

Android 取得状态栏、任务栏高度的小例子

2019-10-24 21:00:04
字体:
来源:转载
供稿:网友
Android 取得状态栏、任务栏高度的小例子,需要的朋友可以参考一下
 

 

复制代码代码如下:

package com.aslibra.test;

 

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 test extends Activity { 
  ImageView iv; 

  @Override 
  public 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);    
  } 

  /* 
   * 07-14 02:36:48.449: VERBOSE/test(1385): == ok == 
   * 07-14 02:36:48.558: VERBOSE/test(1385): =-init-= statusBarHeight=25 contentViewTop=50 titleBarHeight=25 
   */ 
}

 

 

浏览器获取状态栏高度的代码 

复制代码代码如下:

    Rect visRect = new Rect(); 
    if (!mBrowserFrameLayout.getGlobalVisibleRect(visRect)) { 
        if (LOGD_ENABLED) { 
            Log.d(LOGTAG, "showFakeTitleBar visRect failed"); 
        } 
        return; 
    } 
    params.y = visRect.top; 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表