Android沉浸式状态栏设计的实例代码

发布时间 - 2026-01-11 02:33:35    点击率:

本文介绍了android沉浸式状态栏,分享给大家,希望对大家有帮助

一、概述

现在主流的App设计风格很多都用到了Materail Design,今天我们就来简单的实现一下改变状态栏颜色、让状态栏透明这两种效果。

二、实现状态栏设置颜色

我们写一个工具类StatusBarUtils

代码如下:

/**
   * 设置状态栏颜色
   *
   * @param activity
   */
  public static void setStatusColor(Activity activity, int color) {
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
      //直接调用系统提供的方法 setStatusBarColor
      activity.getWindow().setStatusBarColor(color);
    } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
      // 4.4 - 5.0 之间 采用一个技巧,首先把他弄*屏,在状态栏的部分加一个布局
      activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
      View view = new View(activity);
      ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, getStatusbarHeight(activity));
      view.setLayoutParams(params);
      view.setBackgroundColor(color);
      ViewGroup viewGroup = (ViewGroup) activity.getWindow().getDecorView();
      viewGroup.addView(view);
      // 获取activity中setContentView布局的根布局
      ViewGroup contentView = (ViewGroup) activity.findViewById(android.R.id.content);
      View activityView = contentView.getChildAt(0);
      activityView.setFitsSystemWindows(true);
    }
  }

  private static int getStatusbarHeight(Activity activity) {
    Resources resources = activity.getResources();
    int statusHeightId = resources.getIdentifier("status_bar_height", "dimen", "android");
    return resources.getDimensionPixelOffset(statusHeightId);
  }

在Android5.0以上直接调用系统提供的方法 setStatusBarColor,4.4-5.0之间,首先弄*屏,然后在状态栏的部分加一个布局。

三、设置状态栏透明

代码:

  public static void setActivityTranslucent(Activity activity) {
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {
      activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
      activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
    } else if (Build.VERSION.SDK_INT > Build.VERSION_CODES.KITKAT) {
      activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    }
  }

代码就这么多,分析完毕,效果大家可以自己去试一试,我这就不上图了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# android沉浸式状态栏  # 安卓沉浸式状态栏  # Android Studio 全屏沉浸式透明状态栏效果的实现  # Android实现沉浸式状态栏功能  # Android编程中沉浸式状态栏的三种实现方式详解  # Android沉浸式状态栏 + actionBar渐变 + scrollView顶部伸缩效果  # Android沉浸式状态栏的实现代码  # 解决Android 沉浸式状态栏和华为虚拟按键冲突问题  # Android 沉浸式状态栏与隐藏导航栏实例详解  # Android 详解沉浸式状态栏的实现流程  # 状态栏  # 直接调用  # 就不  # 这么多  # 我这  # 把他  # 给大家  # 就来  # 都用  # 这两种  # 大家多多  # 上图  # 设计风格  # VERSION  # SDK_INT  # gt  # int  # Activity  # Build  # color 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  在线教育网站制作平台,山西立德教育官网?  Laravel如何自定义错误页面(404, 500)?(代码示例)  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  零基础网站服务器架设实战:轻量应用与域名解析配置指南  php静态变量怎么调试_php静态变量作用域调试技巧【解答】  Laravel中的withCount方法怎么高效统计关联模型数量  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  如何在宝塔面板创建新站点?  Laravel如何使用模型观察者?(Observer代码示例)  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Android使用GridView实现日历的简单功能  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  如何在宝塔面板中创建新站点?  如何在VPS电脑上快速搭建网站?  googleplay官方入口在哪里_Google Play官方商店快速入口指南  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载  javascript读取文本节点方法小结  Laravel如何理解并使用服务容器(Service Container)_Laravel依赖注入与容器绑定说明  宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法  如何在IIS中配置站点IP、端口及主机头?  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  如何快速搭建支持数据库操作的智能建站平台?  高防服务器租用如何选择配置与防御等级?  Laravel如何使用Sanctum进行API认证?(SPA实战)  android nfc常用标签读取总结  大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  北京企业网站设计制作公司,北京铁路集团官方网站?  如何在景安云服务器上绑定域名并配置虚拟主机?  使用spring连接及操作mongodb3.0实例  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  JavaScript如何实现音频处理_Web Audio API如何工作?  Python数据仓库与ETL构建实战_Airflow调度流程详解  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  太平洋网站制作公司,网络用语太平洋是什么意思?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何做网站制作流程,*游戏网站怎么搭建?  Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】