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

相关·内容

没有搜到相关的视频

领券