Android获取状态栏、标题栏、ActionBar以及屏幕的高度

一、屏幕高度和宽度获取方法

int screenWidth,screenHeight;
WindowManager windowManager = getWindowManager();
Display display = windowManager.getDefaultDisplay();
screenWidth = display.getWidth();
screenHeight = display.getHeight();

  

另外一种

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
int screenHeight = dm.heightPixels;

  

二、状态栏高度获取方法

Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;

  

上面这种方法基本上是可以的,但是下面这种方法更牛逼

private int getStatusBarHeight() {
        Class<?> c = null;
        Object obj = null;
        Field field = null;
        int x = 0;
        try {
            c = Class.forName("com.android.internal.R$dimen");
            obj = c.newInstance();
            field = c.getField("status_bar_height");
            x = Integer.parseInt(field.get(obj).toString());
            return getResources().getDimensionPixelSize(x);
        } catch (Exception e1) {
            Log.d(TAG, "get status bar height fail");
            e1.printStackTrace();
            return 75;
        }
    }

  

三、获取标题栏的高度

int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
//statusBarHeight是上面状态栏的高度
int titleBarHeight = contentTop - statusBarHeight;

  

四、获取ActionBar高度

int actionBarHeight = getActionBar().getHeight();

  

注意 :如果是在Activity的onCreate函数中就开始使用,需要将其放入Runnable中调用,因为这个时候控件的高度可能还没有确定。

View root;
。。。。
root.post(new Runnable() {
            @Override
            public void run() {
                //To change body of implemented methods use File | Settings | File Templates.
                getActivityContentHeight();
            }
        });

  

时间: 2024-10-14 23:44:46

Android获取状态栏、标题栏、ActionBar以及屏幕的高度的相关文章

js获取网页可见区域、屏幕分辨率高度等信息

js获取网页的各种高度,例如可见区域.正文以及屏幕分辨率的高度的方法.有关document的一些属性:网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth 网页正文

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

版权声明:本文为博主原创文章,未经博主允许不得转载. 1.获取状态栏高度: decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏. 于是,我们就可以算出状态栏的高度了. [Java] view plain copy Rect frame = new Rect();getWindow().getDecorView()

android获取状态栏高度

获取android屏幕上状态栏的高度方法网上很多这里不再敖述,只举一个例子 Rect rect = new Rect();getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); rect.top便是状态栏的高度. 但是在响应的布局文件中,如果最外层的layout或者View 长宽设置为fill_parent时,上面的rect.top就为0了.

android 获取状态栏高度

public int getStatusBarHeight(Context context) { Class<?> c = null; Object obj = null; Field field = null; int x = 0, statusBarHeight = 0; try { c = Class.forName("com.android.internal.R$dimen"); obj = c.newInstance(); field = c.getField(&

Android应用:StatusBar状态栏、NavigationBar虚拟按键栏、ActionBar标题栏、Window屏幕内容区域等的宽高

一.屏幕中各种栏目以及屏幕的尺寸 当我们需要计算屏幕中一些元素的高度时,或许需要先获取到屏幕或者各种栏目的高度,下面这个类包含了Status bar状态栏,Navigation bar虚拟按键栏,Action bar标题栏, Window屏幕内容等的宽高的计算,可以带来极大的方便. 因为我在代码中做了比较详尽的注释,在这里不再多阐述,以下是代码: 1 /** 2 * 这个类描述了当前设备的配置中system bar的尺寸(StatusBar状态栏,NavigationBar虚拟按键栏,Actio

android获取自定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度

android获取自定义控件位置坐标,屏幕尺寸,标题栏,状态栏高度 1.获取自定义控件height 在本Activity中获取当前Activity中控件的height: Button button = (Button)findViewById(R.id.button); int buttonHeight = button.getHeight(); 在Activity中获取其他xml文件中控件的height: LayoutInflater factorys = LayoutInflater.fro

Android获取屏幕大小和设置无标题栏

android获取屏幕大小非常常用,例如写个程序,如果要做成通用性很强的程序,适用屏幕很强,一般布局的时候都是根据屏幕的长宽来定义的,所以我把这个总结一下,方便日后忘记的时候查阅.还有就是有时候写程序根据需求不需要title,可以在程序中设置无title的屏幕!转载请标明出处: http://blog.csdn.net/wdaming1986/article/details/6769821 程序的效果图: 代码说明一切真理: 一.mainActivity.java类得代码: Java代码 pac

android获取屏幕宽高工具类

import java.lang.reflect.Field; import android.app.Activity; import android.content.Context; import android.graphics.Point; import android.util.DisplayMetrics; import android.view.Display; import android.view.Window; import android.view.WindowManager

Android获取actionbar高度和StatusBar高度的方法

ActionBar: getActionBar().getHeight(); StatusBar: /** * 获取状态栏高度 * * @return */ public static int getStatusBarHeight(Context context) { Class<?> c = null; Object obj = null; java.lang.reflect.Field field = null; int x = 0; int statusBarHeight = 0; tr