Android开发中在某些界面为了保证显示一致性,可能需要调整statusBar的背景色,本文介绍了Android 4.4(API 19)和Android 5.0以上修改statusBar背景色的方案。其中5.0只需要修改styles.xml文件就可以修改statusbar背景色,而4.4使用了 Toolbar来替代ActionBar的方案。

support-v7-appcompat在21版本之后做了很多修改,所以首先保证你的v7包在21以上。如果没有,请在Android Manager把v7包升级到该版本,或者在Android Studio gradle中如下:

dependencies {

compile 'com.android.support:appcompat-v7:21.1.+'

}

1、修改styles.xml文件

这张图对应的是AppCompat中Item对应的修改的位置。其中的colorPrimaryDark就是修改状态栏的颜色。

在5.0的手机上,在源代码中使用Activity extends ActionbarActivity或者AppCompatActivity,把style/AppTheme应用到该activity即可。

好了,到目前位置,我们已经完成了修改状态栏的颜色,不过很遗憾,这些只在5.0以上的设备上才生效,在4.4或者以下的手机上,状态栏仍然是黑色。

接下来,我们看support v7包中的一个组件Toolbar,很多文档中,已经开始使用Toolbar来替换ActionBar,因为ActionBar虽然起到了规范界面风格的效果,但是限制了诸多特性,而与之相比,Toolbar则更灵活。

android.support.v7.widget.Toolbar;

让我们在layout中为Toolbar单独建立一个layout_toolbar.xml,方便其他页面include使用:

在其他Activity的layout中include上面的Toolbar,比如activity_splash中:

在SplashActivity中使用这个layout:

public class SplashActivity extends AppCompatActivity {

private Toolbar toolbar;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_splash);

toolbar = (Toolbar) findViewById(R.id.activity_toolbar);

setSupportActionBar(toolbar);

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.

getMenuInflater().inflate(R.menu.menu_splash, menu);

return true;

}

@Override

public boolean onOptionsItemSelected(MenuItem item) {

// Handle action bar item clicks here. The action bar will

// automatically handle clicks on the Home/Up button, so long

// as you specify a parent activity in AndroidManifest.xml.

int id = item.getItemId();

//noinspection SimplifiableIfStatement

if (id == R.id.action_settings) {

return true;

}

return super.onOptionsItemSelected(item);

}

}

关键就是这两句话

toolbar = (Toolbar) findViewById(R.id.activity_toolbar);

setSupportActionBar(toolbar);

把Toolbar应用到ActionBar的位置。

在Manifest文件中为该Activity使用style/AppThemeNoActionBar

运行后,你会发现状态栏不在是黑色,而是和Toolbar类似的渐变色

android statusbar背景色,Android改变状态栏statusbar背景色相关推荐

  1. 改变状态栏的背景色和文字的颜色

    如果你想改变状态栏的背景色,你可以试试下边的方法: UIApplication *app = [UIApplication sharedApplication];id statusBar = [app ...

  2. swift 隐藏状态栏_Swift - 动态改变状态栏statusBar文字颜色(preferredStatusBarStyle无效问题)...

    默认情况下,顶部状态栏(statusBar)为 default样式(文字为黑色),我们可以将其改为 light样式(文字为白色),具体方法可以看我之前写的文章(点击查看) 但之前我们都是在应用发布前就 ...

  3. ios 适配iPhonex时可以改变状态栏statusBar的背景颜色

    一.无导航条的情况: 系统默认状态栏的字体颜色为黑色,即UIStatusBarStyle=UIStatusBarStyleDefault,同时背景颜色和self.view.backgroundColo ...

  4. statusbar 尺寸 显示图标_StatusBar 图标展示流程 - 状态栏(StatusBar)镜头布局分析...- git完代码后的异常_169IT.COM...

    本页文章导读: ▪StatusBar 图标展示流程       StatusBar 图标显示流程 StatusBar 图标显示流程  (2010-11-05 15:23:29)转载分类: Androi ...

  5. android谷歌返色状态栏实例,Android实现状态栏(statusbar)渐变效果的示例

    前言 qq最近更新搞了渐变式状态栏.然后...新需求就是要加这个.唉 先来张效果图: 常见的方式: 设置Theme,状态栏透明. true 实现起来比较简单. 几行代码搞定了. 但是.我要泼冷水,这种 ...

  6. android 状态栏(StatusBar)

    一.SystemUI 概述 自 android2.2 开始 , 原本存在与 framework-res.apk 中的状态栏和下拉通知栏界面控制被分割出一个单独的 apk文件 , 命名为 SystemU ...

  7. android 隐藏statusbar,Android状态栏StatusBar常见用法

    什么是StatusBar 首先,谷歌官方的解释是,用于显示通知,传达设备状态的屏幕区域,与应用同时显示.而为了能够使应用显示沉浸式的内容(如电影图片等),官方赋予了应用对状态栏在一定程度上的控制能力, ...

  8. Android 12系统源码_SystemUI(二)系统状态栏StatusBar的创建流程

    前言 上一篇我们具体分析了SystemUI的启动流程,在SystemServer的startOtherServices方法中,会启动SystemUIService服务,SystemUIService服 ...

  9. android status_bar_height动态调整,Android沉浸状态栏(StatusBar)兼容方案

    所谓"沉浸状态栏"的实现需要两点: 设置状态栏为透明或者半透明状态; 整体布局可以置于状态栏下方. 1. 状态栏的配置 对于状态栏的配置有两种方式: 在manifest中配置Act ...

最新文章

  1. 字典 update()
  2. 一篇文章回顾智源悟道 1.0 发布全程
  3. matlab中repmat的用法,Matlab: sum的用法、每一行求和、repmat的用法、sum和repmat结合使用减少循环...
  4. /etc/profile /etc/profile .bash_profile .bashrc解释
  5. 【Pygame小游戏】这款休闲游戏你肯定了解过《开心消消乐》更新版本上线,好土好喜欢
  6. php pdo 怎么循环,php – 在循环内绑定PDO语句的参数
  7. 学习进度条——第八周
  8. api 定位 微信小程序 精度_聊聊微信小程序内置地图定位的精确性
  9. PHP学习之[第11讲]新浪微博开放平台 PHP 与 OAuth 接口(1)
  10. CSMA/CD协议分析笔记
  11. html5边框闪烁,HTML – CSS框阴影动画像素艺术闪烁
  12. python.123登录_python用户登录3次
  13. TensorFlow tf.feature_column
  14. php get_magic_quotes_gpc()
  15. redis和oracle同步方案,redis与oracle之间怎么实现数据同步?
  16. C# 提示框 鼠标移动到控件提示 toolTip气泡提示框
  17. emoji 表情图片解决方法
  18. 芯片数据手册阅读方法
  19. 主流前端框架下ArcGIS API for JavaScript的开发
  20. 基于线程池实现多线程任务

热门文章

  1. 自动驾驶八大主流应用场景——2021年度盘点
  2. C++:char转换为int(char to int )
  3. 虚拟服务器怎么传文件,怎么在虚拟主机中上传东西
  4. 淘宝客推广流量少,卖家应该怎样做?
  5. 我的页面我做主——浏览器去广告正确姿势
  6. 解锁阿迪达斯营销姿势,分析阿迪达斯成功背后的营销策略
  7. 集成底座与业务系统对接过程梳理
  8. oracle 认证指南 pdf,OCP论证考试指南 1Z0-063 Oracle Database 12c高级管理.pdf
  9. Python 游戏背景
  10. Spring Boot 基础学习之(五)页面通过自定义LocaleResolver组件实现网页页面的的中英文转换