运维开发网

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

运维开发网 https://www.qedev.com 2020-02-12 18:54 出处:网络 作者: 网络整理
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;

0

精彩评论

暂无评论...
验证码 换一张
取 消