在画UI过程中,有些情况下需要知道statusBar高度:
网上有些方法是这样的:
Rect frame = new Rect();
getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
Log.v("@@@@@@", "the statusbar Height is : " + statusBarHeight);
类似:
int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();
//statusBarHeight是上面所求的状态栏的高度
int titleBarHeight = contentTop - statusBarHeight;
Log.v("@@@@@@", "the titleBar Height is : " + titleBarHeight);
或者:
Rect rect = new Rect();
MainActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
View view = MainActivity.this.getWindow().findViewById(Window.ID_ANDROID_CONTENT);
int topS = rect.top;//状态栏高度
int topT = rect.height() - view.getHeight();
Log.v("@@@@@@", "the statusbar Height is : " + topS);
Log.v("@@@@@@", "the titleBar Height is : " + topT);
在我的手机上,均不行。
后:
public static 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);
Log.v("@@@@@@", "the status bar height is : " + statusBarHeight);
} catch (Exception e1) {
e1.printStackTrace();
}
return statusBarHeight;
}
经测试可行。
分享到:
相关推荐
在Android应用开发中,有时我们需要根据界面需求对状态栏(StatusBar)进行自定义处理,比如全屏显示或者在状态栏下方添加特殊的背景色。这时,了解如何有效地获取状态栏高度就显得尤为重要。本文将详细讲解如何在...
安装 ...rootProject.projectDir,"../node_modules/react-native-statusbar-props/android") build.gradle dependencies { compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.a
"android获取状态栏高度解析"这个文档就是针对这个问题提供了解决方案。 首先,我们要理解Android状态栏是位于屏幕顶部,显示系统图标、时间等信息的部分。在某些场景下,比如使用PopupWindow,我们需要确保其不被...
android 平板的action bar、status bar、navigation bar的高度
React本机状态栏高度小型图书馆,可帮助您获取状态栏的高度聚苯乙烯 :mobile_phone: 支持X :red_heart:安装$ npm install --save react-native-status-bar-height# OR$ yarn add react-native-status-bar-height用法...
// 获取status_bar_height字段 field = c.getField("status_bar_height"); // 将字段值转换为整数 x = Integer.parseInt(field.get(obj).toString()); // 通过Resources对象获取尺寸值(像素) ...
主要参考stackoverflow的这篇问答:http://stackoverflow.com/questions/3407256/height-of-status-bar-in-android 方法一: private double getStatusBarHeight(Context context){ double statusBarHeight = Math...
int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android"); return context.getResources().getDimensionPixelSize(resourceId); } private int getScreenHeight...
获取状态栏高度通常需要访问Android系统的内部资源,这个方法通过反射来获取`status_bar_height`资源值,然后将其转换为像素。 6. **获取屏幕当前截图**: ```java public static Bitmap snapShotWithStatusBar...
int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { result = getResources().getDimensionPixelSize(resourceId); } return result; } 3,...
状态栏高度是android系统的私有属性,不能通过公共的API来获取,需要通过反射机制来访问 android.internal.R.dimen/status_bar_height 属性。下面是获取状态栏高度的示例代码: ```java public static int ...
- `setTitle()` 和 `setStatusBar()` 方法用于控制Activity的标题栏和状态栏的显示。在调用 `setCurrentView()` 之前,可以使用 `requestWindowFeature(Window.FEATURE_NO_TITLE)` 来隐藏标题栏,实现全屏效果。 -...
本篇文章将详细介绍如何获取Android设备屏幕的各种尺寸信息,包括总屏幕高度、屏幕宽度、可用屏幕高度、状态栏高度以及虚拟键高度,并提供相关的Java代码示例。 1. **总屏幕高度**: - `getTotalScreenHeight` ...
Android Compose样本存储库一个Android应用程序,提供Android Jetpack Compose的...SideMenuItem / StatusBar /屏幕状态不要忘了给存储库加注星标,并等待更多示例:D 讨论区请参阅问题部分: https : //github.com/
android-statusbar-library 状态栏库,兼容5.0版本以下,不需要设置主题样式即可修改状态栏颜色,使用起来很方便 API说明:CoreStatusBar类,主要是用与修改状态栏颜色,获取状态栏和导航栏高度 public static void ...
在Android开发中,沉浸式状态栏(Immersive StatusBar)是一种设计趋势,它使得应用程序的界面可以延伸到状态栏部分,提供更为连贯、无边界的用户体验。自Android 5.0(Lollipop)开始,系统原生支持沉浸式状态栏,...
{ int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); try { return getResources().getDimensionPixelSize(resourceId); } catch (Resources....
Android 键盘/Android 系统/API Domes/Certificate Installer(证书安装)/com.android.gestuer.builder()/com.android.sdksetup()/Custom Locale()/Dev Tools(开发工具)/Example Wallpapers(墙纸式样)/HTML查看器/...
在Android开发中,沉浸式状态栏(Immersive Status Bar)是一种设计趋势,它使得应用内容可以延伸到状态栏下方,创造出更为连贯且无边界的视觉体验。这种效果类似于苹果iOS系统的界面风格,使应用看起来更加现代和...