关于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刘海屏全面屏底部导航栏的适配相关推荐

  1. 关于Android全面屏虚拟导航栏的适配总结

    Android系统发布十多年以来,关于Android的UI的适配一直是开发环节中最重要的问题,但是我看到还是有很多小伙伴对Android适配方案不了解.刚好,近期准备对糗事百科Android客户端设计 ...

  2. android功能导航布局,Android全面屏虚拟导航栏适配

    手机正朝着全面屏的方向演进,与此同时也给开发者带来了很多适配上的新问题,虚拟导航栏就是其中一个.最近在糗百的项目中,就有相关的适配问题,我查阅了目前关于虚拟导航栏适配的相关文章,基本上在全面屏手机里都 ...

  3. android 窗口导航,Android全面屏虚拟导航栏适配

    手机正朝着全面屏的方向演进,与此同时也给开发者带来了很多适配上的新问题,虚拟导航栏就是其中一个.最近在糗百的项目中,就有相关的适配问题,我查阅了目前关于虚拟导航栏适配的相关文章,基本上在全面屏手机里都 ...

  4. 转载:Android (争取做到)最全的底部导航栏实现方法

    原文出处 标题:Android (争取做到)最全的底部导航栏实现方法 作者:野狼谷 原文链接:Android (争取做到)最全的底部导航栏实现方法 - 野狼谷 - 博客园 前言 本文(争取做到)And ...

  5. (2019年10月更新) Android 最全的底部导航栏实现方法

    本文(争取做到)Android 最全的底部导航栏实现方法. 现在写了4个主要方法. 官方方法. 官方的 BottomNavigationActivity 使用Android studio 新建一个工程 ...

  6. (AS笔记)Android全透明沉浸式主题样式——顶部状态栏+底部导航栏

    目录 1.前言 2.自定义主题theme 3.全透明沉浸式主题theme 4.设置状态栏颜色(Android 5.0+) 5.设置状态栏半透明 6.设置状态栏全透明 7.设置底部导航栏半透明 8.全透 ...

  7. Android开发:隐藏和显示底部导航栏

    描述:视频播放器实现全屏和小屏互相切换时,显示和隐藏底部导航栏的方法 该例子设置的Activity是去除状态栏和标题栏,全屏显示布局和电量等信息.Manifest文件 theme如下: <act ...

  8. 沉浸式,状态栏高度,刘海屏怎么开启,适配

    沉浸式,状态栏高度,刘海屏怎么开启,怎么适配?看这! 何为沉浸式? 沉浸式就是app的头部和状态栏和何为一体的,webview即为整个手机的高度 何为状态栏? 状态栏就是手机顶部,显示时间电量那一行 ...

  9. android 获取ListView内部Item高度

    今天,简单讲讲android 如何  获取ListView内部Item高度. 这个比较简单,但是之前自己不知道怎么做,在网上查了资料才找到.所以记录一下. 在外面取: ListAdapter li ...

最新文章

  1. 【linux】tc命令使用总结
  2. SpringMVC+MyBatis+Redis开启二级缓存配置
  3. bzoj1407: [Noi2002]Savage
  4. static_cast, dynamic_cast, const_cast学习和探讨
  5. linux下VMware_Tools虚拟机工具的安装
  6. 计算机启动完成后操作系统负责管理的是,终极:如果计算机启动后无法进入系统,旧驱动程序会教您如何处理...
  7. 【开通指南】 实时计算 Flink 全托管版本
  8. oracle查询用户权限和角色_详解jenkins配置用户角色权限的实现方法
  9. 解决 pycharm can not save setting
  10. 使用 pyinstaller 打包 py 文件成 exe 程序
  11. django 中多字段主键(复合、联合主键)
  12. unity NGUI图文混排
  13. C#实现超市管理系统(进销存--(包含部分用户权限的管理))
  14. FPGA实现UHS的一些资料
  15. 人工智能软件工程师软件清单
  16. 华为云等保解决方案,全流程等保服务,帮助企业守护信息安全
  17. 华中科技大-汉明校验码设计
  18. ESP32 Wi-Fi讲解,station连接热点案例
  19. 共享电单车属于哪个部门管理_“彩虹大战”乱象丛生,长沙将规范共享电单车,实行配额管理...
  20. 如何快速写完SCI论文

热门文章

  1. Linux服务器如何获取出口ip
  2. c#笔记-流程控制语句
  3. Lenovo G480笔记本安装OS X Mavericks 10.9,升级10.9.1,驱动安装,DSDT修改全过程
  4. OpenCV之霍夫变换
  5. vscode中设置HTML模板
  6. 神州数码:与云同行,一往无前
  7. 视频教程-C#Winform报表与打印技术——自定义报表的实现-C#
  8. [Activeden] flachina A004 Advanced XML Website英文原版flash+xml商业整站
  9. 水晶报表2008新增功能点评及仍需改进之处
  10. OpenCV实现照片换底色处理