首页
学习
活动
专区
工具
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>
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

状态栏与导航栏属于SystemUi的管理范畴,虽然界面的UI会受到SystemUi的影响,但是,APP并没有直接绘制SystemUI的权限与必要。APP端之所以能够更改状态栏的颜色、导航栏的颜色,其实还是操作自己的View更改UI。可以这么理解:状态栏与导航栏拥有自己独立的窗口,而且这两个窗口的优先级较高,会悬浮在所有窗口之上,可以把系统自身的状态栏与导航栏看做全透明的,之所有会有背景颜色,是因为下层显示界面在被覆盖的区域添加了颜色,之后,通过SurfaceFlinger的图层混合,好像是状态栏、导航栏自身有了背景色。看一下一个普通的Activity展示的时候,所对应的Surface(或者说Window也可以)。

04

最新iOS设计规范五|3大界面要素:控件(Controls)

iOS是运行于iPhone、iPad和iPod touch设备上、最常用的移动操作系统之一。作为互联网应用的开发者、产品经理、体验设计师,都应当理解并熟悉平台的设计规范。这有利于提高我们的工作效率,保证用户良好的体验。 本文是iOS设计规范系列第5篇,介绍3大界面要素(栏、视图、控件)中的控件(Controls)。首先让我们回顾一下iOS的3大界面要素。 3大界面要素 (Interface Essentials) 大多数iOS应用都是由UI Kit中的组件构建的。UI Kit是一种定义通用界面元素的编程框架,这个框架不仅让APP在视觉外观上保持一致,同时也为个性化设计留有很大空间。UI Kit提供的界面组件有三类:栏(Bars),视图(Views),控件(Controls)。

03
领券