`
lovelease
  • 浏览: 386454 次
社区版块
存档分类
最新评论

Android获取状态栏高度

阅读更多
获取状态栏高度有两种方法:
1.如果是在Activity中:
    Rect localRect = new Rect();  
    getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect);  
    statusHeight = localRect.top;

限制:由于getWindow()方法在Activity中,所以只能在Activity中使用 ,当然了,如果你传递的context对象可以被强转成Activity,那也可以,如下:
((Activity)mContext).getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect); 

如果不能强转,而又不在activity中,还可以利用反射机制获取,这种方法只要有context对象就可以使用:
private 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("status_bar_height");  
            x = Integer.parseInt(field.get(obj).toString());  
            statusBarHeight = context.getResources().getDimensionPixelSize(x);  
        } catch (Exception e1) {  
            e1.printStackTrace();  
        }  
        return statusBarHeight;
	}
分享到:
评论

相关推荐

    android获取状态栏高度解析.docx

    "android获取状态栏高度解析"这个文档就是针对这个问题提供了解决方案。 首先,我们要理解Android状态栏是位于屏幕顶部,显示系统图标、时间等信息的部分。在某些场景下,比如使用PopupWindow,我们需要确保其不被...

    android 获得状态栏高度

    此外,如果你使用的是Fragment,可以在onCreateView或onViewCreated方法中获取状态栏高度,然后对Fragment内的布局进行相应调整。在Fragment中,你需要传递Activity的Context来调用上面的方法。 总之,获取Android...

    Android中获取状态栏高度的两种方法分享

    在Android应用开发中,有时需要精确布局以适应屏幕的不同部分,这时获取状态栏高度显得尤为重要。本文将介绍两种在Android中获取状态栏高度的方法,并提供相应的示例代码,供开发者参考。 ### 方法一:基于屏幕密度...

    Android有效获取状态栏(StatusBar)高度的方法

    总结一下,Android获取状态栏高度可以通过反射机制或者使用`DisplayMetrics`。选择哪种方法取决于项目的兼容性需求和设备的多样性。在实际开发中,确保对不同设备和Android版本进行充分的测试,以确保代码的稳定性和...

    Android获得控件和状态栏高度,通过反射方式获取状态栏高度,通过dime获取组件高度

    Android获得控件和状态栏高度,通过反射方式获取状态栏高度,通过dime获取组件高度。不同于普通获取状态栏高度,还得需要在子线程中获取

    Android开发,设置状态栏颜色、获取状态栏高度、计算状态栏颜色等针对状态栏操作的工具类。

    Android开发,设置状态栏颜色、半透明效果、状态栏全透明、DrawerLayout 布局设置状态栏变色、状态栏半透明矩形条、状态栏状态栏大小相同的彩色矩形条、状态栏设置根布局参数、获取状态栏高度、计算状态栏颜色等针对...

    获取屏幕的像素数,密度,状态栏的高度等

    综上所述,Android开发者需要理解并掌握屏幕像素数、密度以及状态栏高度的获取方法,以便为用户提供更好的视觉体验和功能适配。在实际应用中,还需要注意各种设备间的差异,以确保应用在不同设备上表现一致。在...

    获取分辨率,状态栏标题栏高度

    在Android开发中,获取屏幕分辨率、状态栏高度和标题栏高度是常见的需求,尤其是在自定义布局或者实现全屏效果时。下面将详细讲解如何实现这些功能。 首先,我们来看如何获取屏幕的分辨率。屏幕分辨率通常指的是...

    Android 沉浸式状态栏(亲测好用)

    2. 在`onCreate()`方法中获取状态栏高度,并设置内容视图的顶部内边距。 3. 自定义`StatusBarDrawable`,根据图片内容绘制状态栏。 4. 使用`setStatusBarColor()`或`setStatusBarIconColor()`方法设置状态栏颜色和...

    android获取屏幕,状态栏,标题栏宽高

    #### 二、获取状态栏高度 接下来,我们来学习如何获取状态栏的高度。这一步对于实现沉浸式UI非常有用。通过`Rect`对象可以轻松实现: ```java Rect rect = new Rect(); getWindow().getDecorView()....

    Unity3D Android 状态栏

    在Android平台上,Unity3D允许开发者实现丰富的用户界面,包括控制状态栏和虚拟按键的功能。本文将深入探讨如何在Unity3D 5.3.4版本中实现在Android 2.0系统上显示状态栏和虚拟按键,并支持沉浸式透明效果。 首先,...

    获取Android状态栏,屏幕,以及下方屏幕内按钮高度

    获取Android状态栏,屏幕,以及下方屏幕内按钮高度..内有详细代码

    Android获得控件和状态栏高度

    #### 二、获取状态栏高度 接下来,我们来看如何获取状态栏的高度。这是通过以下步骤完成的: 1. **创建Rect对象**: ```java Rect rect = new Rect(); Window window = getWindow(); tv....

    Android-Android状态栏问题汇总

    不同设备的状态栏高度可能不同,需要通过程序动态获取并适配。可以使用`StatusBarUtil`等第三方库,或者使用`Resources.getSystem().displayMetrics.heightPixels`减去`getWindow().getDecorView().getHeight()`来...

    Android 获取屏幕、状态栏、标题栏的尺寸

    - **反射方法**:如果设备没有预定义的状态栏高度,可以通过反射`StatusBarManager`类的`getHeight()`方法来获取,但这需要API 19及以上。 3. **标题栏尺寸获取** - **ActionBar/Toolbar高度**:在Android中,...

    android状态栏和主界面融为了一体

    可以使用`getStatusBarHeight()`方法获取状态栏高度,这个方法通常通过查询资源ID `android.R$dimen.status_bar_height`来实现。如果需要自定义状态栏高度,可以通过修改布局文件或在代码中调整相关视图的高度。 4....

    Android 获取屏幕高度,标题高度,状态栏高度(实例代码)

    2. **获取状态栏高度**: 状态栏是显示时间、网络状态、通知等信息的区域,其高度可以通过`getWindow().getDecorView().getWindowVisibleDisplayFrame(frame)`方法获取。这个方法会将一个`Rect`对象`frame`填充为...

    Android编程实现获取系统内存、CPU使用率及状态栏高度的方法示例

    本文实例讲述了Android编程实现获取系统内存、CPU使用率及状态栏高度的方法。分享给大家供大家参考,具体如下: DeviceInfoManage类用于获取系统的内存,CPU的信息,以及状态栏的高度 import java.io.BufferedReader...

Global site tag (gtag.js) - Google Analytics