首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android更改工具栏颜色和状态栏颜色,但保留状态栏阴影

在Android中,可以通过以下步骤来更改工具栏颜色和状态栏颜色,并保留状态栏阴影:

  1. 首先,在你的项目的res/values目录下的styles.xml文件中,创建一个新的主题或修改现有的主题。例如,可以在styles.xml文件中添加以下代码:
代码语言:xml
复制
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- 更改工具栏颜色 -->
    <item name="colorPrimary">#FF0000</item>
    <!-- 更改状态栏颜色 -->
    <item name="colorPrimaryDark">#00FF00</item>
</style>

在上面的代码中,colorPrimary用于更改工具栏的颜色,colorPrimaryDark用于更改状态栏的颜色。

  1. 接下来,在你的AndroidManifest.xml文件中,将你的应用程序的主题设置为刚刚创建或修改的主题。例如:
代码语言:xml
复制
<application
    android:theme="@style/AppTheme">
    ...
</application>
  1. 最后,在你的Activity的onCreate方法中,调用以下方法来保留状态栏阴影:
代码语言:java
复制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
    getWindow().setStatusBarColor(Color.TRANSPARENT);
    getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}

上述代码中,setStatusBarColor(Color.TRANSPARENT)用于将状态栏设置为透明,getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR)用于设置状态栏文字为深色。

至此,你已经成功地更改了工具栏颜色和状态栏颜色,并保留了状态栏阴影。

在腾讯云的相关产品中,可以使用腾讯云移动开发套件(https://cloud.tencent.com/product/mobdevsuite)来进行Android应用的开发和部署。该套件提供了丰富的移动开发工具和服务,包括移动应用开发平台、移动测试平台、移动推送服务等,可以帮助开发者快速构建和发布高质量的Android应用。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android状态栏颜色修改

前言 Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字图标颜色,默认是白色的。...所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字图标会看不清 有一些第三方的系统提供了设置状态栏状态栏文字、图标颜色的方法,比如小米的MIUI魅族的...当然,这里面也会有坑,比如 MIUI 提供的修改状态栏字体颜色方法会跟 Android 系统自带的方法冲突,官方说明如下: 关于MIUI状态栏字符颜色逻辑调整说明 经过网上的资料自己的尝试,MIUI...系统还是同时使用 MIUI 提供的方法 Android 系统自带的方法来修改状态栏字体颜色比较保险。...基于上面的思考,封装了设置 Android 4.4 以上系统状态栏颜色状态栏字体、图标颜色的方法: 首先,需要引入 SystemBarTint 库: dependencies { implementation

3.9K30

android自定义状态栏颜色

我们知道IOS上的应用,状态栏颜色总能与应用标题栏颜色保持一致,用户体验很不错,那安卓是否可以呢?...若是在安卓4.4之前,答案是否定的,但在4.4之后,谷歌允许开发者自定义状态栏背景颜色啦,这是个不错的体验!...(即把你的状态栏颜色与你的标题栏颜色保持一致)要写在color.xml中去,如果用Color.praseColor则会报错。...貌似已经达到效果了,仔细观察,好像标题栏被提上去了,就是说APP界面全屏了,状态了盖在了APP上,恩,这并非我们想要的效果,那如何将界面从状态栏下部开始呢,只需要在Activity的布局文件最外层控件加上一个属性...Tab3Activity调了下位置,结果Tab3Activity成为首页后正常,而Tab1Activity又不正常了,百思不得姐,最后实在没办法,就在Tab2Activity、Tab3Activity

1.7K60

Android实现修改状态栏背景、字体图标颜色的方法

前言: Android开发,对于状态栏的修改,实在是不友好,没什么api可以用,不像ios那么方便.但是ui又喜欢只搞ios一套.没办法.各种翻源码,写反射.真的蛋疼....一.修改状态栏颜色: 改变状态栏颜色,可以看看这篇文章.传送门:实现状态栏(statusbar)渐变效果其实很简单 传送门实现的效果: 这种方法实现的状态栏变色,没有黑色背景. ?...6.0以上版本其他Android * * @return 1:MIUUI 2:Flyme 3:android6.0 */ public static int getStatusBarLightMode...* 适配4.4以上版本MIUIV、Flyme6.0以上版本其他Android */ public static void setStatusBarLightMode(Window window) {....比如:activity是蓝色,fragment需要是白色,fragment需要通过window修改状态栏颜色.有点麻烦.

5.7K41

android开发修改状态栏背景色图标颜色的示例

本文介绍了android开发修改状态栏背景色图标颜色的示例,分享给大家,具体如下: 修改状态栏背景色图标颜色 默认是黑底白字的,现在要改为白底黑字的 先看下效果图: ?...1、状态栏背景是白色: 在style中设置 <item name="colorPrimaryDark" @color/white</item 2、写修改状态栏图标的颜色(暂时只知道黑色白色) public...,设置状态栏黑色文字、图标, * 适配4.4以上版本MIUIV、Flyme6.0以上版本其他Android * @param activity * @return 1:MIUUI 2:Flyme 3:...* 可以用来判断是否为Flyme用户 * @param window 需要设置的窗口 * @param dark 是否把状态栏文字及图标颜色设置为深色 * @return boolean 成功执行返回...状态栏是改变了,你会看到整个activity布局都会上移充满整个屏幕 解决方法1:在style中的AppTheme添加 <item name=”android:fitsSystemWindows”

1.7K20

Android实现状态栏虚拟按键背景颜色的变化实例代码详解

今天介绍一下,我在项目开发过程中,实现状态栏虚拟按键背景颜色变化的方法,实现方式是,通过隐藏系统的状态栏虚拟按键的背景,实现图片背景显示到状态栏虚拟按键下方。...19以上的版本,接着调用了transparentStatusBar()方法,根据API21为分界,分别实现状态栏背景的透明,然后是调用setStatusBarTextColor()方法,设置状态栏字体的颜色...2、自定义状态栏,我设置的背景为白色 ? 如果要填充自己需要的导航栏颜色的话,可以自己创建一个导航栏布局layout_head, <?...frameLayout.addView(getHeadView()); 这样,就可以设置自己想要的状态栏颜色高度了。...总结 以上所述是小编给大家介绍的Android实现状态栏虚拟按键背景颜色的变化实例代码详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

1.7K30

android 设置标题栏背景颜色_状态栏菜单栏都在哪

一个Activity包含多个Fragment切换时,不同的Fragment的状态栏背景,状态栏文字颜色图标要求不一样怎么实现? 3....下面是同一个activity切换不同fragment时,状态栏文字颜色跟着变化的效果图: 下图是同一个Activity向上滚动时,标题栏状态栏文字颜色根据变化的效果: 1....withoutUseStatusBarColor) { //android6.0以后可以对状态栏文字颜色图标进行修改 getWindow().getDecorView...Activity通过上面的设置,可以实现如下效果: 上面设置状态栏文字颜色图标为暗色主要采用了以下两个标志: //设置状态栏文字颜色及图标为深色 getWindow().getDecorView()...感兴趣的小伙伴可以参下:android沉浸式状态栏、fitsSystemWindows、标题栏折叠 下面我们说说怎么在界面滑动时,修改状态栏标题栏文字颜色

2.2K10

一个Android沉浸式状态栏上的黑科技

如果背景图片的颜色状态栏图标的颜色非常接近的话,那么的确会造成状态栏图标看不清楚的情况。 这里我举了一些沉浸式效果做得不太好的案例,具体是什么App我就不提了。...即使出现浅色的背景图,由于阴影层的存在,状态栏上的图标依然是可以看得清的。 如果只是用这个方案解决的话,那么我就不会写本篇文章了。因为这里我们会采用第二种方案,从技术层面解决。...首先从技术层面进行分析,要解决这个问题,无非就是需要将背景图颜色状态栏图标的颜色区分开。...Android系统其实给了我们API来控制状态栏图标的颜色,但是只能设置成黑、白这两种颜色,而不可以将状态栏图标改成五颜六色的样子。...这里我准备了几张不同的背景图,由Palette解析之后,会根据识别出的颜色值动态更改状态栏图标的颜色。 这是深色背景图的效果。 这是浅色背景图的效果。

1.4K10

Material Design Lite,简洁惊艳的前端工具箱

在下面的动图中,你可以直观地体会到 阴影的变化对我们感官的影响: 因此,Material Design 并不是单纯的扁平化,它在保留了扁的控件的同时,采用了立体的虚拟空间, 简言之,Material...在每个调色板中,色调为500的颜色为基准色,其他颜色是基准色在不同色调(50-900, A100-700) 下的表现。 在右边的示例代码中,我们绘制了Material Design完整的调色板集。...你可以将鼠标移动到一个颜色上,查看其RGB值。...工具栏状态栏 工具栏大色块应当使用调色板中色调为500的颜色为基准色。状态栏应当选择 调色板中比基准色略深的色调为700的颜色。...在下面的示例中,左图的工具栏右图的大色块,使用了indigo调色板中的色调 500的基准色;而两幅图顶端的状态栏则使用了indigo调色板中的色调700的深色: 4.

89910

关于 Android 状态栏的适配总结

4.4 ~ Android 5.0:这个版本其实是不允许直接修改状态栏颜色的,只不过我们利用了一种巧妙的方法,感觉是修改了状态栏颜色而已。...注意在使用 fitsSystemWindow 的时候,颜色问题,不同的手机系统,可能会造成延伸到状态栏的那一块颜色不同,理论上颜色应该根布局的颜色一样。...Android 5.0 到了 Android 5.0 关于状态栏又发生了变化,新增了直接对状态栏的操作,直接改变状态栏颜色,这一点在之前版本是没有的,Android 4.4 虽然可以实现改变状态栏颜色的效果...,其实实际上是将我们的布局占据了状态栏,然后状态栏是透明的。...Android5.0透明no.png Android 6.0 在 Android 6.0 添加了可以更改状态栏字体颜色的方法,别的都是 Android 5.0 一样的。 状态栏字体颜色默认是白色。

1.1K20

Material Design Lite ,简洁惊艳的前端工具箱

因此,Material Design 并不是单纯的扁平化,它在保留了扁的控件的同时,采用了立体的虚拟空间, 简言之,Material Design的核心是:扁而不平。...在每个调色板中,色调为500的颜色为基准色,其他颜色是基准色在不同色调(50-900, A100-700) 下的表现。 在右边的示例代码中,我们绘制了Material Design完整的调色板集。...你可以将鼠标移动到一个颜色上,查看其RGB值。...工具栏状态栏 工具栏大色块应当使用调色板中色调为500的颜色为基准色。状态栏应当选择 调色板中比基准色略深的色调为700的颜色。...在下面的示例中,左图的工具栏右图的大色块,使用了indigo调色板中的色调 500的基准色;而两幅图顶端的状态栏则使用了indigo调色板中的色调700的深色: ? 4.

1.2K30

开启全面屏体验 | 手势导航 (一)

现有的三键导航模式 (包含后退、返回首页以及切换最近使用的应用) 会被保留。搭载 Android 10 及以上版本系统的所有设备都要求保留这一导航模式。...使用 Android 10 以下设备的用户同样能获得更加沉浸的体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者的工作量测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。...只要您的内容布局允许,我们建议尽量把内容也拓展到状态栏的后方。...如果应用的 UI 包含一个列表,而且列表顶端还固定放着一个 Toolbar 的话,那把内容绘制在状态栏后面就可能不合适了。同样,有些时候把内容绘制在导航栏下面也不合适。...更改系统栏颜色 我们的应用布局现在已经拓展至全屏范围,因此需要同步更改一下系统栏的颜色,以便看清其后面的应用内容。

2.4K30

Android 沉浸式解析轮子使用

是因为从 Android 6.0(API 23)开始,我们可以改状态栏的绘制模式,可以显示白色或浅黑色的内容图标(除了魅族手机,魅族自家有做源码更改,6.0 以下就能实现)。...-Android5.0 之间的效果如贴图,状态栏顶部是有一个黑色阴影渐变,在5.0版本版本以上被修复了。...所以Android5.0以上可以设置状态栏导航栏背景颜色还不能改变状态栏导航栏图标字色。...1.3 Android 6.0 +实现状态栏字色图标浅黑色 使用 Android6.0 以下版本沉浸式的时候会遇到一个问题,那就是 Android 系统状态栏的字色图标颜色为白色,当状态栏颜色接近浅色的时候...,设置初始化window属性让后设置导航栏状态栏颜色

3.2K10

关于 Android 中的各种 Bar “透明状态栏”的一些知识

说明:在 Android 4.4 之前状态栏一直就是黑色的,在 Android 4.4 中带来了 windowTranslucentStatus 这一特性,这个时候才可以给状态栏设置颜色。...关于沉浸式透明式概念说明 在谷歌官方中: 在 Android 4.4 Google 引入了可以在阅读电子书、玩游戏、看电影时支持全屏模式(Immersive Mode 沉浸模式),同时也支持更改修改状态栏颜色...修改状态栏颜色 Android 5.0 (API 21) 后支持直接修改状态栏颜色,在 Android 4.4(API 19)之前是不允许操作状态栏的,也就是说在 Android 4.4 之前,我们是没法对状态栏进行任何操作的...">@color/colorAccent 对应状态栏颜色 修改状态栏文字颜色 关于状态栏的文字颜色,是在 Android 6.0 才开始可以支持修改的 // 修改成 黑色字体 getWindow...表示是否保留系统栏的空间。可以在布局属性中设置。作用给控件添加 "fitsSystemWindows" 属性相同。

2.5K10
领券