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

如何在android中更改屏幕底部的软导航背景和图标颜色?

在 Android 中更改屏幕底部的软导航栏(Navigation Bar)的背景颜色和图标颜色,可以通过编程方式或在 XML 布局文件中进行设置。以下是详细的步骤和示例代码。

更改软导航栏背景颜色

要更改软导航栏的背景颜色,可以使用 Window 类的 setNavigationBarColor 方法。你可以在 ActivityonCreate 方法中进行设置。

示例代码

代码语言:javascript
复制
import android.graphics.Color;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 设置导航栏背景颜色
        getWindow().setNavigationBarColor(Color.parseColor("#FF0000")); // 红色
    }
}

更改软导航栏图标颜色

要更改软导航栏图标的颜色,可以使用 WindowInsetsController 类的 setSystemBarsAppearance 方法。你可以在 ActivityonCreate 方法中进行设置。

示例代码

代码语言:javascript
复制
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 设置导航栏背景颜色
        getWindow().setNavigationBarColor(Color.parseColor("#FF0000")); // 红色

        // 设置导航栏图标颜色
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            getWindow().getInsetsController().setSystemBarsAppearance(
                View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR,
                View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
            );
        } else {
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
        }
    }
}

在 XML 布局文件中设置

你也可以在 XML 布局文件中设置导航栏的颜色。需要在 styles.xml 文件中定义一个主题,并在 AndroidManifest.xml 中应用该主题。

styles.xml 中定义主题

代码语言:javascript
复制
<resources>
    <!-- Base application theme -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here -->
        <item name="android:windowNavigationBarColor">@color/navigation_bar_color</item>
        <item name="android:windowLightNavigationBar">true</item>
    </style>
</resources>

colors.xml 中定义颜色

代码语言:javascript
复制
<resources>
    <color name="navigation_bar_color">#FF0000</color> <!-- 红色 -->
</resources>

AndroidManifest.xml 中应用主题

代码语言:javascript
复制
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

掌握Flutter底部导航栏:畅游导航之旅

底部导航栏通常位于屏幕底部,由一组导航项(通常是图标和标签组合)组成,用户可以通过点击不同的导航项来切换应用程序的不同部分。...Flutter提供了丰富的选项,使开发者可以轻松自定义底部导航栏的外观,包括选中项的颜色和图标、背景颜色和形状、导航栏的高度以及图标的大小等。在本节中,我们将介绍如何实现底部导航栏的自定义外观。...4.1 更改选中项颜色和图标 通过设置BottomNavigationBar的selectedItemColor属性,可以更改选中项的颜色。...接着,我们讨论了如何自定义底部导航栏的外观,包括更改选中项的颜色和图标、自定义背景颜色和形状、以及调整导航栏的高度和图标大小等。...此外,我们还探讨了如何利用状态管理库(如Provider和Bloc)来管理底部导航栏的状态,以及如何实现一些高级功能,如添加徽章、动态更改导航栏项以及实现动画效果等。

47710

在React Native中构建启动屏

在这个教程中,我们将演示如何在React Native中构建一个启动屏幕。我们将指导你如何使用 react-native-splash-screen 为iOS和Android应用构建出色的欢迎界面。...在这个教程中,我们将使用 App Icon Generator,这是一个用于创建Android和iOS应用图标和图片的在线平台。...将内容模式设置为“aspect fit”,如下所示: 更改iOS启动屏幕颜色 你可能会问的下一个问题是“我如何在 React Native 中更改启动屏幕的背景颜色?”...为了在 iOS 中为启动屏幕强制使用一致的背景,滚动到背景设置位置并从下拉菜单中选择 Custom。在弹出窗口中,选择启动屏幕的期望颜色。...更改Android的启动屏幕颜色 要更改Android应用的启动屏幕背景颜色,请在values文件夹中创建一个名为 colors.xml 的文件,并复制下面的代码: /* app/src/main/res

63210
  • 简单了解下无障碍设计模式

    错误示例 这些文本没有遵循合颜色对比度建议,在它们的背景色中很难进行阅读。 图标或其他关键元素也应使用上述推荐的对比度。 正确示例 这些图标遵循颜色对比度建议,和它们的背景色之间有清晰的对比。...错误示例 这些图标没有遵循颜色对比度建议,在它们的背景色中很难进行阅读。...当使用屏幕阅读器(如 “TalkBack” ),并通过触摸板导航时,在用户指尖触摸到 UI 元素时,会大声读出标签上的文本。...视觉反馈(如标签、颜色和图标)和触摸反馈向用户显示了可用的 UI。 导航应该具有清晰的任务流程,和最少的步骤。在频繁使用的任务上,应该实现聚焦控制、或控制键盘和读取焦点的功能。...重要操作:将重要操作放在屏幕的顶部或底部(使用快捷方式即可访问) 相关项目:将相似层级的相关项目放在彼此相邻的位置 正确示例 通过把重要的操作放在屏幕顶部,使它们在层次结构中显得更重要。

    4.8K40

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

    我们在 Android 10 中添加了新的系统导航模式,用户可以通过手势交互执行后退、返回至主屏以及打开设备助手等操作。 ?...全面屏幕体验 我使用 "边到边" (edge-to-edge) 一词来描述那种将内容铺满整个屏幕,以实现更沉浸视觉体验的应用。默认情况下,应用内容的绘制范围从顶部状态栏下方开始,延伸至底部导航栏上方。...由于导航栏自身的大小和突出程度已经相比以前缩小了,因此我们现在强烈建议,当应用在 Android 10 及以上设备中运行时,将内容拓展至导航栏后方,以提供更具吸引力的现代化 UX。...举个具体的例子,比如像下图那样把一张背景图铺在状态栏后面,具体的技术实现可以参考类似 AppBarLayout 等布局,并将其放在屏幕顶部。 ?...△ 应用内容在全屏范围内渲染,而且在导航栏后面2. 更改系统栏颜色 我们的应用布局现在已经拓展至全屏范围,因此需要同步更改一下系统栏的颜色,以便看清其后面的应用内容。

    2.5K30

    Flutte部件目录-Material Components 顶

    实现Material Design指南的视觉,行为和运动丰富的小部件。 应用程序结构和导航 按钮 输入和选择 对话框,弹出框和面板 信息显示 布局 查看Flutter窗口小部件目录中的更多小部件。...应用程序结构和导航 Scaffold Appbar 上面两个在基本部件中已经讲过。 BottomNavigationBar ? 底部导航栏可轻松浏览并在单次点击之间在顶层视图之间切换。...一个显示在应用底部的材质小部件,用于在少量视图中进行选择,通常介于3到5之间。 底部导航栏由文本标签,图标或两者的多个项目组成,并放置在一块材料的顶部。 它提供了应用程序顶级视图之间的快速导航。...对于更大的屏幕,侧面导航可能更适合。 底部导航栏通常与Scaffold结合使用,在Scaffold.bottomNavigationBar参数中提供它。 底部导航栏的type会更改其条目的显示方式。...SnackBar 带有可选操作的轻量级消息,简要显示在屏幕底部。 ? 信息显示 Image 一个显示图像的小部件。 ? Icon 材质设计图标。 ?

    9.5K40

    Flutter 中自定义动画底部导航栏

    在这个博客中,我们将探索Flutter中的自定义动画底部导航栏。我们将看到如何实现自定义动画底部导航栏的演示程序以及如何在您的 Flutter 应用程序中使用它。...介绍: 显示在应用程序底部的Material小部件,用于在几个视角中进行选择,通常在 3 到 5 范围内的某个位置。底部导航栏包含各种选项,如文本标签、图标或两者。...它提供了应用程序的高级视角之间的快速导航。对于更大的屏幕,侧面导航可能更合适。 这个演示视频展示了如何在 flutter 中使用自定义的底部导航栏。...它展示了自定义底部导航栏将如何在您的 Flutter 应用程序中工作。它显示当用户点击底部导航栏图标时,它们将被动画化并显示标签文本。当用户点击任何图标时,颜色也会发生变化和动画。...它将显示在您的设备上。 特性 自定义动画底部导航栏的一些属性是: selectedIndex:这个属性用于被选中的项是一个索引。更改此属性将更改所选项目并为其设置动画。默认为零。

    9K30

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

    我们在 Android 10 中添加了新的系统导航模式,用户可以通过手势交互执行后退、返回至主屏以及打开设备助手等操作。...全面屏幕体验 我使用 "边到边" (edge-to-edge) 一词来描述那种将内容铺满整个屏幕,以实现更沉浸视觉体验的应用。默认情况下,应用内容的绘制范围从顶部状态栏下方开始,延伸至底部导航栏上方。...由于导航栏自身的大小和突出程度已经相比以前缩小了,因此我们现在强烈建议,当应用在 Android 10 及以上设备中运行时,将内容拓展至导航栏后方,以提供更具吸引力的现代化 UX。...举个具体的例子,比如像下图那样把一张背景图铺在状态栏后面,具体的技术实现可以参考类似 AppBarLayout 等布局,并将其放在屏幕顶部。...更改系统栏颜色 我们的应用布局现在已经拓展至全屏范围,因此需要同步更改一下系统栏的颜色,以便看清其后面的应用内容。

    23110

    探索 Flutter 中的 NavigationRail:使用详解

    介绍 在 Flutter 中,NavigationRail 是一个垂直的导航栏组件,用于在应用程序中提供导航功能。它通常用于更大屏幕空间的设备,如平板电脑和桌面应用程序。...自定义外观: NavigationRail 允许开发人员根据应用程序的设计和品牌风格自定义导航栏的外观。您可以自定义背景颜色、选中项的颜色、图标和标签等。...: TextStyle(color: Colors.grey), // 设置未选中项的标签文本颜色 // 其他配置属性... ) 4.2 自定义图标和标签 您可以通过以下方法自定义导航栏的图标和标签...以下是一个示例,演示如何在导航栏的顶部添加一个按钮,并在底部添加一个文本标签: NavigationRail( leading: IconButton( icon: Icon(Icons.menu...灵活的自定义选项: NavigationRail 提供了丰富的自定义选项,包括背景色、选中项的颜色、标签类型等,使开发人员可以根据应用程序的设计和品牌风格定制导航栏的外观。

    66210

    React Native顶|底部导航使用小技巧

    导航一直是App开发中比较重要的一个组件,ReactNative提供了两种导航组件供我们使用,分别是:NavigatorIOS和Navigator,但是前者只能用于iOS平台,后者在ReactNative0.44...initialRoutenoneinitialRoute tabBarOptions for (iOS上的默认标签栏)TabBarBottom activeTintColor - 活动标签的标签和图标颜色...activeBackgroundColor - 活动选项卡的背景颜色 inactiveTintColor - 非活动标签的标签和图标颜色 inactiveBackgroundColor - 非活动标签的背景颜色...for (Android上的默认标签栏)TabBarTop activeTintColor - 活动标签的标签和图标颜色 inactiveTintColor - 非活动标签的标签和图标颜色 showIcon...(Android> = 5.0) pressOpacity - 按压标签的不透明度(iOS和Android <5.0 only) scrollEnabled - 是否启用可滚动选项卡 tabStyle

    7.8K60

    Android 沉浸式解析和轮子使用

    是因为从 Android 6.0(API 23)开始,我们可以改状态栏的绘制模式,可以显示白色或浅黑色的内容和图标(除了魅族手机,魅族自家有做源码更改,6.0 以下就能实现)。...所以Android5.0以上可以设置状态栏和导航栏背景颜色,但还不能改变状态栏和导航栏图标和字色。...1.3 Android 6.0 +实现状态栏字色和图标浅黑色 使用 Android6.0 以下版本沉浸式的时候会遇到一个问题,那就是 Android 系统状态栏的字色和图标颜色为白色,当状态栏颜色接近浅色的时候...style> 二、ZanImmersionBar 轮子的原理和使用 在实际开发过程中,我们不仅仅只会遇到以上三种版本兼容问题,还需要考虑如:不同手机品牌,动态该状态栏背景,以及 Fragment 中需要有自己的状态栏颜色场景...2.5 在 PopupWindow 中实现沉浸式 重点是调用以下方法,但是此方法会导致有导航栏的手机底部布局会被导航栏覆盖,还有底部输入框无法根据软键盘弹出而弹出。

    3.2K10

    零基础微信小程序开发——全局配置之window窗口(保姆级教程+超详细)

    它可以包含多个子配置项,如navigationBarBackgroundColor(导航栏背景颜色)、navigationBarTextStyle(导航栏标题颜色)、navigationBarTitleText...在实际的小程序开发中,背景区域通常会被用来设置窗口的背景颜色、图片或渐变色等,以增强小程序的美观性和用户体验。...在页面主体区域内,开发者可以放置各种组件(如按钮、文本框、图片等),并通过样式(如颜色、字体大小、边距等)来调整它们的外观和行为。...HexColor #000000 导航栏背景颜色,如#000000 navigationBarTextStyle String white 导航栏标题颜色,仅支持black/white backgroundColor...小白的大数据之旅" > 设置导航栏的背景色 需求:把导航栏标题的背景色,从默认的 #fff 修改为 #2b4b6b 设置步骤:index.wxml文件中第一行代码写上以下代码

    15710

    Google IO 2019 Android 应用源代码现已发布

    手势导航: 返回上一级界面和主屏 深色主题背景 Android Q 引入的另一项新特性是系统深色主题背景,它既可全局应用于 Android 系统界面,也可应用于设备上运行的应用。...="AppTheme" parent="Theme.MaterialComponents.DayNight"> 请避免使用硬编码颜色或图标,而是选用主题属性 (例如: ?...中定义的颜色)。...移除了向上/返回导航操作的样板代码 使用 Safe Args Gradle 插件在各个 Fragment 之间传递静态类型的参数 请阅读《导航组件入门指南》,学习如何在应用中添加导航组件,或查看 Google...当用户在搜索框中输入要查找的内容后,检索项便会被用于查询演讲名称等数据。查询结果将立即显示在屏幕上,因此,如果搜索字段发生任何字符更改,服务器会马上返回更新后的结果。

    1.7K10

    开始使用-编写你的第一个Flutter应用程序 顶

    查找和使用包来扩展功能。 使用热重载加快开发周期。 如何实现有状态的小部件。 如何创建一个无限的,延迟加载的列表。 如何创建并导航到第二个屏幕。 如何使用主题更改应用程序的外观。...从MyApp中删除Scaffold和AppBar实例。 这些将由RandomWordsState管理,这使得用户在下一步中从一个屏幕导航到另一个屏幕时,可以更轻松地更改应用栏中的路由名称。...lib/main.dart 第6步:导航到新的屏幕 在这一步中,您将添加一个显示收藏夹的新屏幕(在Flutter中称为路由)。 您将学习如何在主路由和新路由之间导航。...列表图标出现在应用程序栏中。 点击它什么也没做,因为_pushSaved函数是空的。 3.当用户点击应用栏中的列表图标时,建立一条路由并将其推送到导航器的堆栈。 此操作会更改屏幕以显示新路由。...1.您可以通过配置ThemeData类轻松更改应用程序的主题。 您的应用程序目前使用默认主题,但您将更改主要颜色为白色。

    9.5K20

    6详解AppBar小部件

    Flutter AppBar 是根据Material Design指南构建的应用程序组件。它通常位于屏幕顶部,并且能够在其布局中包含其他小部件。...示例包括返回上一页的导航箭头或打开抽屉的菜单图标。 当上一条路线可用时,导航箭头会自动出现。...AppBar 包含各种属性,包括颜色、大小、图标主题、文本主题等等。 背景颜色 以下代码将 AppBar 的背景颜色更改为深橙色。500添加以访问颜色的特定阴影,900即最暗和最亮50。...工具栏高度和不透明度 最后,我们有工具栏属性。工具栏包含文字,图标,按钮,和其他任何公司的前景,除了小部件,如Container和Image。...的布局和添加小部件 如何为 AppBar 的图标、文本、背景、高度、阴影颜色和工具栏设置主题 所以我们有了!

    16.4K10

    【小程序】全局配置window和tabBar

    全局配置文件及常用的配置项 全局配置 - window 1. 小程序窗口的组成部分 2. 了解 window 节点常用的配置项 ​编辑 3. 设置导航栏的标题 4. 设置导航栏的背景色 5....设置导航栏的标题颜色 6. 全局开启下拉刷新功能 7. 设置下拉刷新时窗口的背景色 8. 设置下拉刷新时 loading 的样式 9. 设置上拉触底的距离 全局配置 - tabBar 1....设置导航栏的背景色 设置步骤:app.json -> window -> navigationBarBackgroundColor 需求:把导航栏标题的背景 色,从默认的 #fff 修改为 #2b4b6b...设置导航栏的标题颜色 设置步骤:app.json -> window -> navigationBarTextStyle 需求:把导航栏上的标题颜色,从默认 的 black 修改为 white ,效果如图所示...步骤1 - 拷贝图标资源 把资料目录中的 images 文件夹,拷贝到小程序项目根目录中 将需要用到的小图标分为 3 组,每 组两个,其中: 图片名称中包含 -active 的是选中之后的图标 图片名称中不包含

    1.6K30

    『React Navigation 3x系列教程』createMaterialTopTabNavigator开发指南

    TabNavigatorConfig(可选):配置导航器的路由(如:默认首屏,navigationOptions,paths等)样式(如,转场模式mode、头部模式等)。...path(可选):用来设置支持schema跳转时使用,具体使用会在下文的有关Schema章节中讲到; navigationOptions(可选):用以配置全局的屏幕导航选项如:title、headerRight...tabBarOptions(tab配置) activeTintColor: 设置TabBar选中状态下的标签和图标的颜色; inactiveTintColor: 设置TabBar非选中状态下的标签和图标的颜色...ripple(仅支持 Android >= 5.0; pressOpacity -按下标签时的不透明度(支持 iOS 和 Android < 5.0); scrollEnabled -是否支持 选项卡滚动...) createMaterialTopTabNavigator支持的屏幕导航选项的参数有: title: 可以用作headerTitle和tabBarLabel的备选的通用标题。

    12.7K20

    为任意屏幕尺寸构建 Android 界面

    Trackr 的开发曾是为了展示如何在 Android 中支持无障碍功能体验的最佳实践,随着最近针对大屏幕的更新,它无疑是一个很好的示例。...△ 更改之前的 Trackr 样式 上图是我们进行更改之前的 Trackr 样式,您会发现不管在什么设备或屏幕下,都会有一个单窗口任务列表以及用于导航到归档或设置页面的底部应用栏。...我们先来进行第一项优化,使用 NavRail 而非底部应用栏,首先我们要考虑的是导航模型,所幸我们不会更改很多具体的视图,仅仅只会更改导航方式,因为 NavRail 会一直存在于整个视图体系中,可以通过它导航到任何其他视图...其中比较有趣的一点是思考应用如何在不同尺寸布局之间转换,例如对于可折叠手机,应用可能会从较大的屏幕变为较小的屏幕。...但这次更改是针对屏幕尺寸做的决策,我们是不是可以让单个组件自身根据页面而拥有不同尺寸呢?例如我们有一张卡片,当在列表中因为空间的限制只展示标题和副标题,而有更多空间时,则调整为显示图像。

    4.2K20

    全屏、沉浸式、fitSystemWindow使用及原理分析:全方位控制“沉浸式”的实现

    APP端之所以能够更改状态栏的颜色、导航栏的颜色,其实还是操作自己的View更改UI。...可以这么理解:状态栏与导航栏拥有自己独立的窗口,而且这两个窗口的优先级较高,会悬浮在所有窗口之上,可以把系统自身的状态栏与导航栏看做全透明的,之所有会有背景颜色,是因为下层显示界面在被覆盖的区域添加了颜色...Surface图 第一个XXXXActivity,大小是屏幕大小 第二个状态栏StatusBar,大小对应顶部那一条 第三个是底部虚拟导航栏NavigationBar,大小对应底部那一条 HWC_FRAMEBUFFER_TARGET...改变状体栏及导航栏的颜色的本质是往DecorView中添加有颜色的View, 并放在状态栏及导航栏下面。...SystemUi中系统状态栏的添加逻辑 上面我们说过了,状体栏、导航栏属于系统窗口,不在用户管理的范畴内,由于牵扯到通知、图标之类的管理,还是挺复杂的,这里我们只关心 状态栏的添加时机,用来说明状态栏视图其实是不归

    5.7K40
    领券