在 Android 中更改屏幕底部的软导航栏(Navigation Bar)的背景颜色和图标颜色,可以通过编程方式或在 XML 布局文件中进行设置。以下是详细的步骤和示例代码。
要更改软导航栏的背景颜色,可以使用 Window
类的 setNavigationBarColor
方法。你可以在 Activity
的 onCreate
方法中进行设置。
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
方法。你可以在 Activity
的 onCreate
方法中进行设置。
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 布局文件中设置导航栏的颜色。需要在 styles.xml
文件中定义一个主题,并在 AndroidManifest.xml
中应用该主题。
styles.xml
中定义主题<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
中定义颜色<resources>
<color name="navigation_bar_color">#FF0000</color> <!-- 红色 -->
</resources>
AndroidManifest.xml
中应用主题<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>
领取专属 10元无门槛券
手把手带您无忧上云