首页
学习
活动
专区
工具
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

4K30
  • android自定义状态栏颜色

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

    1.8K60

    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修改状态栏颜色.有点麻烦.

    6K41

    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.8K20

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

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

    1.8K30

    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.

    94910

    关于 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.2K20

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

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

    2.5K30

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

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

    1.3K30

    Android学习第八弹之改变状态栏颜色使其与APP风格一体化

    导语:沉浸式状态栏,改变状态栏颜色使之与APP风格一体化是不是感觉很漂亮,很美?其实实现这种效果并不难,google在4.4及以下提供了相关的方法。...我相信大家肯定看到过很多软件有沉浸式状态栏,在运行该App时改变了手机屏幕顶部状态栏颜色,使他们的风格非常的统一,看起来异常的漂亮清爽。...想不想实现这种效果呢,其实在Android KITKAT上有一个新的特性可以设置手机状态栏的背景,让手机整个界面的风格保持一致,看起来非常清爽统一。...方法实现 1添加布局属性 首先要在布局文件中加入下面两个属性: android:clipToPadding="true" android:fitsSystemWindows="true" 解释一下上面两个布局属性的意思...: android:clipToPadding 定义布局间是否有间距 android:fitsSystemWindows="true" 意思就是设置应用布局时是否考虑系统窗口布局;如果为true,将调整系统窗口布局以适应你自定义的布局

    60370

    关于 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.7K10
    领券