具体可参阅 我为Android版Microsoft Edge所带来的变化 。...Android系统其实给了我们API来控制状态栏图标的颜色,但是只能设置成黑、白这两种颜色,而不可以将状态栏图标改成五颜六色的样子。...好了,现在有了这个法宝来控制状态栏图标的颜色,那么接下来的问题就是,什么时候应该显示白色的状态栏图标?什么时候应该显示黑色的状态栏图标?...答案是显而易见的,为了能让前景背景的颜色区分更加明显,当然应该是底部是深色背景图的时候显示白色的状态栏图标,底部是浅色背景图的时候显示黑色的状态栏图标。...当亮度低于0.5时,我就认为这是一个深色的颜色值,那么此时将状态栏设置成深色模式,状态栏图标就会自动变成白色。反之就将状态栏设置成浅色模式,此时状态栏图标就会自动变成黑色。
从图中可以看出,1.X-2.2版本的通知栏采用了白色背景和黑色字体;2.3-4.X版本,默认背景变成了黑色,而主标题采用白色字体,内容为灰色字体。...从Android5.0开始,又更改为白色背景和黑色字体。当然,这只是原生的Android系统通知栏默认颜色,许多厂商对每个Android的版本都尝试了各式各样的修改,在此不一一介绍。...解决方案 首先产生灰色图标的原因就是5.0系统引入了材料设计,谷歌强制使用带有alpha通道的图标,并且RGB的alpha值必须是0(实测不为0也是可以的,但系统会忽略所有RGB值)。...Android通知栏的背景色有几种情况,白色、暗色、暗色透明和黑色。如果生成的Bitmap带背景色,这个背景色就很难选择。如果选择黑色背景,那么在白色通知栏的机型上就很难看。...例如京东固定背景色为黑色,字体为红色。这种方式的唯一缺陷是样式上不能与普通通知栏消息重合,在白色背景的通知栏上极为显眼。
前言 Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。...所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字和图标会看不清 有一些第三方的系统提供了设置状态栏和状态栏文字、图标颜色的方法,比如小米的MIUI和魅族的...基于上面的思考,封装了设置 Android 4.4 以上系统状态栏颜色和状态栏字体、图标颜色的方法: 首先,需要引入 SystemBarTint 库: dependencies { implementation...,需要先将状态栏设置为透明 setTranslucentStatus(activity); //设置状态栏颜色 SystemBarTintManager...* @param activity * @param isTextDark 文字、图标是否为黑色 (false为默认的白色) * @param colorId 状态栏颜色
是因为从 Android 6.0(API 23)开始,我们可以改状态栏的绘制模式,可以显示白色或浅黑色的内容和图标(除了魅族手机,魅族自家有做源码更改,6.0 以下就能实现)。...1.3 Android 6.0 +实现状态栏字色和图标浅黑色 使用 Android6.0 以下版本沉浸式的时候会遇到一个问题,那就是 Android 系统状态栏的字色和图标颜色为白色,当状态栏颜色接近浅色的时候...Android 6.0 新添加了一个属性来解决这个问题,属性是 SYSTEMUIFLAGLIGHTSTATUS_BAR,可以设置状态栏字色和图标浅黑色。...-- Android 6.0以上 状态栏字色和图标为浅黑色--> android:windowLightStatusBar">true 设置状态栏字体为暗色 uiFlags = setStatusBarDarkFont(uiFlags); //android 8.0以上设置导航栏图标为暗色
yes/no 定义是否允许用户手动缩放页面,默认值yes 忽略数字自动识别为电话号码 在IOS Safari(其他浏览器和Android均不会)上会对那些看起来像是电话号码的数字处理为电话链接...content的值为 default(状态栏将为正常的,即白色,网页从状态栏以下开始显示) | black(状态栏将为黑色,网页从状态栏以下开始显示) | black-translucent(状态栏将为灰色半透明...有一套规范,就是在IOS设备的图标统一为“四边圆角”、“高光处理”。...至于“图标阴影”,是IOS设备中统一为所有桌面元素增加的,所以不作为图标单独处理的样式。...yes"/> //->缩放不出现滚动条 //->夜间模式 强制图片显示:UC浏览器为了节省流量,为用户提供了无图模式
(窗口标题栏背景色)、TextColor属性(窗口标题栏文本颜色)和TextAlign属性(窗体标题栏文本水平方向),如图2; a.Image属性(TitleImage) 设置窗体图标,将Image属性设置为...若将TextAlign属性设置为“Left”,如图8、图9; f.StatusBarStyle属性 设置状态栏字体的颜色,默认设置为“Light”,即白色,如图10; 若将该属性设置为“Default”...,即黑色。...图8 图9 图10 h.TitleVisable属性 设置标题栏是否显示,默认设置为“True”,即显示标题栏,如图11; 若将该属性设置为“False”,即不显示标题栏,手机显示效果如图12;...图11 图12 3、手机效果显示
项目需要 要在快速设置面板里显示一个VoWiFi图标(为了能够区分出来图形,我把透明的背景填充为黑色了) 由于普通图片放大后容易失真,这里我们最好用矢量图(SVG(Scalable Vector Graphics...))来做图标,而系统状态栏图标多是用vectorDrawable绘制,所以我们的最终目的就是绘制一个上图中样式的Android VectorDrawable xml图标。...支持导出为svg等格式图片,功能强大,与后面两个将要介绍的比较就是体积有点大,安装包就接近百兆了。...这里我把颜色改回了白色。...Android Studio支持直接预览VectorDrawable矢量图,有了实时预览,也方便进行一些简单的修改。 这个图标最后应用到下拉的快速设置里面,在手机上的效果图就不上了。
/github.com/AweiLoveAndroid/Solve-StatusBar-VirtualKeyBoard (二)沉浸式状态栏图标的适配 2.2.1 小米MIUI系统适配 之前做沉浸式状态栏...在MIUI V6及以上版本,调用MIUI的方法将状态栏图标改为黑色。发现部分小米手机,这样的设置不管用,导致头上一片白,状态栏上的东西基本看不到。...(四)改变状态栏字体颜色为黑色的适配 2.4.1 小米适配 /** * 改变小米的状态栏字体颜色为黑色,要求MIUI6以上 * tested on: MIUI V7 5.0 Redmi-Note3...darkModeFlag : 0, darkModeFlag); } 2.4.2 魅族适配 /** * 改变魅族的状态栏字体为黑色,要求FlyMe4以上 */ private void processFlyMe...示例图 实现原理:利用WindowManager将我们的圆角加到屏幕的四个角,圆角颜色设置为黑色,形成视觉圆角屏幕。
设置沉浸式状态栏,各个android版本之间差别如何,那么多flag,长得都一样,都有什么区别? 无图无真相,带着这几个问题,先上两张我实现的效果图。...如果不使用则使用透明色值 protected boolean useStatusBarColor = true;//是否使用状态栏文字和图标为暗色,如果状态栏采用了白色系,则需要使状态栏和图标为暗色...Activity通过上面的设置,可以实现如下效果: 上面设置状态栏文字颜色和图标为暗色主要采用了以下两个标志: //设置状态栏文字颜色及图标为深色 getWindow().getDecorView()...,状态栏悬浮于视图之上 View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR 是从 API 23开始启用,实现效果: 设置状态栏图标和状态栏文字颜色为深色,为适应状态栏背景为浅色调...同一个Activity包含多个Fragment时,如何实现不同fragment的状态栏背景和文字颜色不一样 如下面的效果图: 就是设置了状态栏为暗色后,还得设置回来,这其实主要靠下面两个flag
首先要实现它我们得先理解他,状态栏不同于标题栏,状态栏是Android手机自带的,显示一些Android内置的信息。正常情况下位于我们标题栏上方,以黑色居多。...然后继续获取页面首层layout,设置cliptoPadding和fitsSystemWindows属性为true,使得开发页面和状态栏分开不重合,设置颜色为颜色为标题栏颜色。...result = 3; } } return result; } /** * 已知系统类型时,设置状态栏黑色字体图标...* 可以用来判断是否为Flyme用户 * * @param window 需要设置的窗口 * @param dark 是否把状态栏字体及图标颜色设置为深色...,需要MIUIV6以上 * * @param window 需要设置的窗口 * @param dark 是否把状态栏字体及图标颜色设置为深色 * @return
,设置状态栏黑色文字、图标, * 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android * * @param activity * @return...,清除MIUI、flyme或6.0以上版本状态栏黑色文字、图标 */ public static void StatusBarDarkMode(Activity activity, int...getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); } } /** * 设置状态栏图标为深色和魅族特定的文字风格...* 可以用来判断是否为Flyme用户 * * @param window 需要设置的窗口 * @param dark 是否把状态栏文字及图标颜色设置为深色...return result; } /** * 需要MIUIV6以上 * * @param activity * @param dark 是否把状态栏文字及图标颜色设置为深色
效果图 Android 4.4 以前 状态栏永远是黑底白字,没有方法改变。上面的所有的方法也是不适用的。 ?...Android4.4透明no.png android:fitsSystemWindows = "true" 属性 可以理解为给所使用的布局设置了状态栏大小的 padding。...Android5.0透明no.png Android 6.0 在 Android 6.0 添加了可以更改状态栏字体颜色的方法,别的都是和 Android 5.0 一样的。 状态栏字体颜色默认是白色。...可以修改为黑色。...默认情况下,只是将 insets(将 insets 设置为 0 )做为 View 的 padding。并且返回true。
,设置状态栏黑色文字、图标, * 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android * * @param activity * @return...getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); } } /** * 设置状态栏图标为深色和魅族特定的文字风格...* 可以用来判断是否为Flyme用户 * * @param window 需要设置的窗口 * @param dark 是否把状态栏文字及图标颜色设置为深色...return result; } /** * 需要MIUIV6以上 * * @param activity * @param dark 是否把状态栏文字及图标颜色设置为深色...状态栏主题 深色则为黑色图标和文字,浅色则为白色图标和文字 */ protected void setStatubar(AppCompatActivity activity,int
Color.TRANSPARENT); window.setNavigationBarColor(Color.TRANSPARENT); } } /** * 设置状态栏黑色字体图标...); result = 3; } } return result; } /** * 设置状态栏图标为深色和魅族特定的文字风格...* 可以用来判断是否为Flyme用户 * * @param window 需要设置的窗口 * @param dark 是否把状态栏字体及图标颜色设置为深色...} catch (Exception e) { } } return result; } /** * 设置状态栏字体图标为深色...,需要MIUIV6以上 * * @param window 需要设置的窗口 * @param dark 是否把状态栏字体及图标颜色设置为深色 * @return
暗色系 亮色系 在 React Native 中我们可以定制 状态栏 StatusBar 。当然了,说是定制,无非以下几点 显示或隐藏状态栏。 设置主题色:亮色系还是暗色系。... 静态方法 除了可以使用属性来设置状态栏外,React Native 中的 StatusBar 还提供了一些静态方法用来设置状态栏。...值说明 值说明default默认主题色,iOS 上是 dark-content ,Android 是 light-contentlight-content暗色的背景,亮色的文字和图标dark-content...亮色的背景,暗色的文字和图标( Android 要求 API >= 23 ) StatusBarAnimation StatusBarAnimation 枚举常量定义了状态栏可用的动画效果。...值说明 值说明none默认,没有动画效果fade渐隐渐现动画效果slide渐入渐出动画效果 范例 范例 1 下面的代码,我们设置状态栏 StatusBar 的主题色为 暗色系,同时显示状态栏。
AppBar 样式属性 可以通过 shape 属性设置 AppBar 形状,如下是通过 RoundedRectangleBorder 设置的圆角矩形。...其中通过了 iconTheme 来配置 AppBar 中的默认图标主题,这样如果存在多个按钮,方便统一配置,避免一个个设置的麻烦。...AppBar 的使用细节 AppBar 在构造时可以传入 automaticallyImplyLeading 属性,用于控制是否在 leading 为 null 时,根据场景自动添加某些图标:比如 Scafflod...比如默认情况下背景色是蓝色,状态栏是白色: 如果背景色是白色,状态栏就会是黑色,这样就很方便。 如果不使用 AppBar,也能界面跳着跳着状态栏就错乱了。比如类似下面的情况。...---- 如果状态栏的颜色和你预期的不同,可以通过 systemOverlayStyle 属性来设置状态栏的颜色,如下 light 会将状态栏图标的颜色变白: systemOverlayStyle: const
上一篇文章介绍了高仿京东的沉浸式状态栏,可是跟京东首页的头部轮播图相比,依然有三处缺憾: 1、京东的头部Banner上方,除了有悬浮着的状态栏,状态栏下面还有一行悬浮工具栏...,内嵌扫一扫图标、搜索框,以及消息图标; 2、把整个页面往上拉,状态栏的背景色从透明变为深灰,同时工具栏的背景也从透明变为白色; 3、页面下拉到顶后,继续下拉会拉出带有“下拉刷新”字样的布局,此时松手则会触发页面的刷新动作...; 上面第一点的状态栏和工具栏悬浮效果,都有对应的解决办法;第二点的状态栏和工具栏背景变更,也存在可行的解决方案。...下面是演示页面拉到顶部附件的两种效果图,其中左图为上拉页面使之整体上滑,此时状态栏的背景变灰、工具栏的背景变白;右图为下拉页面使之接近顶部,此时状态栏和工具栏的背景均恢复透明。 ? ?...运行改造后的测试App,下拉刷新的效果见下列组图,其中左图为正在下拉时的截图,右图为松开下拉、开始刷新之时的截图。 ? ? 点此查看Android开发笔记的完整目录
在APP的设置列表当中显示开关 属性 深色主题使用的是深灰色,而不是黑色来作为主要的色彩。...在深色背景上的浅色文本 当浅色文本出现在深色背景上的时候(这里是白色文本置于黑色背景之上),它应该遵循下面的不透明度设置规则: 最重要的内容,白色文本不透明度设置为87% 中等重要的内容,白色文本的不透明度为...使用基准色的容器 叠加层使用和图标或者文本色彩相匹配的颜色(如果不存在图标的话)。不同的状态下,叠加层的不透明度的状态各不相同,正常状态下是未叠加,其他状态下的叠加透明度则从4%到12%不等。 ?...禁用状态 所有的被禁用的组件,都使用不透明度为 12% 的白色用来呈现外轮廓和填充色,并使用不透明度为 38% 的白色来显示文本和表层的内容。 ?...轮廓容器:不透明度为12%的白色 标签/图标:不透明度为38%的白色 色彩填充容器:不透明度为12%的白色 相关资源 Sticker sheet 是和 Sketch for Android 这套组件一起使用的
适配 5.0 和 6.0 以上 应用风格如果是白色的,想把状态栏也设置成白色的,会导致状态栏上的图标文字看不见了,经查询发现 6.0 以上可以修改状态栏图标文字风格,可以改成黑的,但是 6.0 以下版本无解...体验了 QQ 浏览器,因为网页大多都是纯白的,在 6.0 的手机上状态栏背景纯白,图标文字改成黑的了,但在 5.1 的手机上图标文字没法改,它是把背景做成灰色的了。...6.0 以下无法改状态栏图标文字颜色,只能控制颜色不要太白。...(statusBarColorBefore23); 6.0 以上可以根据状态栏要变化的颜色来调整状态栏图标文字的风格。...根据颜色去设置 } else { // 背景是一张图 window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
其中,如果文本框设置为自动宽度,则组件可根据文字内容的增多横向延伸。如果设置为自动高度,则组件的横向宽度可以手动调节,纵向高度由文字内容的多少决定。...Icon 图标网格 用于在绘制成组图标时,控制图标的大小和比例关系。此处网格分两种,左侧为32x32,右侧为24*24(此处为观看方便,进行了放大,非真实大小)。...Lane 泳道 有 horizontal、vertical 即水平、竖直两种,用于绘制多角色,较复杂的流程图。 ---- System 系统组件 指针、状态栏等无需设计师绘制的常用系统组件。...尺寸为32x32,此处为观看方便进行了放大。 iPhone 包含 iPhone 状态栏和主屏指示器。...此处为方便观看,调整了组件尺寸。 Wechat 微信 包含微信中浏览器和小程序的导航栏。具体包含黑色和白色两种。此处为方便观看。调整了尺寸。