android获取刘海屏状态栏高度,Android刘海屏全面屏底部导航栏的适配
关于Android状态栏和虚拟导航栏的适配,文章:https://blog.csdn.net/leogentleman/article/details/54566319
讲的很不错。
状态栏的适配:
在activity里设置了
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
即可。然后再用下面的方法获取状态栏的高度进行适配:
public static int getStatusBarHeight(Context context) {
int statusBarHeight = 0;
int resourceId = context.getResources().getIdentifier(“status_bar_height”, “dimen”, “android”);
if (resourceId > 0) {
statusBarHeight = context.getResources().getDimensionPixelSize(resourceId);
}
return statusBarHeight;
}
底部虚拟导航栏的适配:
可以使用下 面的方法获取底部导航栏的高度:
//获取是否存在NavigationBar
public static boolean checkDeviceHasNavigationBar(Context context) {
boolean hasNavigationBar = false;
Resources rs = context.getResources();
int id = rs.getIdentifier(“config_showNavigationBar”, “bool”, “android”);
if (id > 0) {
hasNavigationBar = rs.getBoolean(id);
}
try {
Class systemPropertiesClass = Class.forName(“android.os.SystemProperties”);
Method m = systemPropertiesClass.getMethod(“get”, String.class);
String navBarOverride = (String) m.invoke(systemPropertiesClass, “qemu.hw.mainkeys”);
if (“1”.equals(navBarOverride)) {
hasNavigationBar = false;
} else if (“0”.equals(navBarOverride)) {
hasNavigationBar = true;
}
} catch (Exception e) {
}
return hasNavigationBar
}
// 获取NavigationBar高度
public static int getNavigationBarHeight(Context context) {
Resources resources = context.getResources();
int resourceId = resources.getIdentifier(“navigation_bar_height”,“dimen”, “android”);
int height = resources.getDimensionPixelSize(resourceId);
return height;
}
不过在小米手机上,MIUI9,10上有刘海屏模式和全面屏模式,需要进行分别适配。
Settings.Global.getInt(mContext.getContentResolver(), “force_black”, 0) == 1
可以判断是不是刘海屏,指针对不是刘海屏的情况适配。
android获取刘海屏状态栏高度,Android刘海屏全面屏底部导航栏的适配相关推荐
- 关于Android全面屏虚拟导航栏的适配总结
Android系统发布十多年以来,关于Android的UI的适配一直是开发环节中最重要的问题,但是我看到还是有很多小伙伴对Android适配方案不了解.刚好,近期准备对糗事百科Android客户端设计 ...
- android功能导航布局,Android全面屏虚拟导航栏适配
手机正朝着全面屏的方向演进,与此同时也给开发者带来了很多适配上的新问题,虚拟导航栏就是其中一个.最近在糗百的项目中,就有相关的适配问题,我查阅了目前关于虚拟导航栏适配的相关文章,基本上在全面屏手机里都 ...
- android 窗口导航,Android全面屏虚拟导航栏适配
手机正朝着全面屏的方向演进,与此同时也给开发者带来了很多适配上的新问题,虚拟导航栏就是其中一个.最近在糗百的项目中,就有相关的适配问题,我查阅了目前关于虚拟导航栏适配的相关文章,基本上在全面屏手机里都 ...
- 转载:Android (争取做到)最全的底部导航栏实现方法
原文出处 标题:Android (争取做到)最全的底部导航栏实现方法 作者:野狼谷 原文链接:Android (争取做到)最全的底部导航栏实现方法 - 野狼谷 - 博客园 前言 本文(争取做到)And ...
- (2019年10月更新) Android 最全的底部导航栏实现方法
本文(争取做到)Android 最全的底部导航栏实现方法. 现在写了4个主要方法. 官方方法. 官方的 BottomNavigationActivity 使用Android studio 新建一个工程 ...
- (AS笔记)Android全透明沉浸式主题样式——顶部状态栏+底部导航栏
目录 1.前言 2.自定义主题theme 3.全透明沉浸式主题theme 4.设置状态栏颜色(Android 5.0+) 5.设置状态栏半透明 6.设置状态栏全透明 7.设置底部导航栏半透明 8.全透 ...
- Android开发:隐藏和显示底部导航栏
描述:视频播放器实现全屏和小屏互相切换时,显示和隐藏底部导航栏的方法 该例子设置的Activity是去除状态栏和标题栏,全屏显示布局和电量等信息.Manifest文件 theme如下: <act ...
- 沉浸式,状态栏高度,刘海屏怎么开启,适配
沉浸式,状态栏高度,刘海屏怎么开启,怎么适配?看这! 何为沉浸式? 沉浸式就是app的头部和状态栏和何为一体的,webview即为整个手机的高度 何为状态栏? 状态栏就是手机顶部,显示时间电量那一行 ...
- android 获取ListView内部Item高度
今天,简单讲讲android 如何 获取ListView内部Item高度. 这个比较简单,但是之前自己不知道怎么做,在网上查了资料才找到.所以记录一下. 在外面取: ListAdapter li ...
最新文章
- 【linux】tc命令使用总结
- SpringMVC+MyBatis+Redis开启二级缓存配置
- bzoj1407: [Noi2002]Savage
- static_cast, dynamic_cast, const_cast学习和探讨
- linux下VMware_Tools虚拟机工具的安装
- 计算机启动完成后操作系统负责管理的是,终极:如果计算机启动后无法进入系统,旧驱动程序会教您如何处理...
- 【开通指南】 实时计算 Flink 全托管版本
- oracle查询用户权限和角色_详解jenkins配置用户角色权限的实现方法
- 解决 pycharm can not save setting
- 使用 pyinstaller 打包 py 文件成 exe 程序
- django 中多字段主键(复合、联合主键)
- unity NGUI图文混排
- C#实现超市管理系统(进销存--(包含部分用户权限的管理))
- FPGA实现UHS的一些资料
- 人工智能软件工程师软件清单
- 华为云等保解决方案,全流程等保服务,帮助企业守护信息安全
- 华中科技大-汉明校验码设计
- ESP32 Wi-Fi讲解,station连接热点案例
- 共享电单车属于哪个部门管理_“彩虹大战”乱象丛生,长沙将规范共享电单车,实行配额管理...
- 如何快速写完SCI论文
热门文章
- Linux服务器如何获取出口ip
- c#笔记-流程控制语句
- Lenovo G480笔记本安装OS X Mavericks 10.9,升级10.9.1,驱动安装,DSDT修改全过程
- OpenCV之霍夫变换
- vscode中设置HTML模板
- 神州数码:与云同行,一往无前
- 视频教程-C#Winform报表与打印技术——自定义报表的实现-C#
- [Activeden] flachina A004 Advanced XML Website英文原版flash+xml商业整站
- 水晶报表2008新增功能点评及仍需改进之处
- OpenCV实现照片换底色处理