
本文详解 android 中顶部区域(状态栏和操作栏)的命名区别与颜色修改方法,涵盖代码动态设置与主题样式文件静态配置两种专业方案,并提供完整示例与关键注意事项。
本文详解 android 中顶部区域(状态栏和操作栏)的命名区别与颜色修改方法,涵盖代码动态设置与主题样式文件静态配置两种专业方案,并提供完整示例与关键注意事项。
在 Android 应用中,屏幕顶部常被误称为“App Bar”,但需明确区分两个独立区域:状态栏(Status Bar)(显示时间、信号、电量等系统信息,位于最顶端)和操作栏(Action Bar)(位于状态栏下方,通常包含标题、菜单图标等,属于 Activity 的 UI 组件)。您截图中显示的黑色区域,若为应用内容上方的深色条带,大概率是未配置的主题默认 ActionBar;而纯黑顶部细条则可能是未适配的 StatusBar。
✅ 推荐方案一:通过 styles.xml 统一配置(推荐,符合 Material Design 规范)
在 res/values/styles.xml 中修改应用主题,可同时控制 ActionBar 背景与 StatusBar 颜色(Android 5.0+):
<!-- res/values/styles.xml -->
<style name="Theme.MyApp" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- ActionBar 背景色 -->
<item name="colorPrimary">@color/blue_500
<!-- 状态栏背景色(仅 API 21+ 生效)-->
<item name="android:statusBarColor">@color/blue_700
<!-- 可选:导航栏颜色 -->
<item name="android:navigationBarColor">@color/blue_800
</style>
并在 colors.xml 中定义对应色值:
<!-- res/values/colors.xml --> <color name="blue_500">#2196F3</color><color name="blue_700">#1976D2</color><color name="blue_800">#1565C0</color>
⚠️ 注意:确保 AndroidManifest.xml 中 Activity 使用该主题:
远程控制 Android 设备,支持截图、自动化操作手机 App 等功能。本应用使用 uiautomator2 作为底层框架,通过 ADB 连接设备,用户无需 Root(1)查看手机屏幕;(2)自动化操作手机 App;(3)远程安装/卸载应用……
<activity android:name=".MainActivity" android:theme="@style/Theme.MyApp"></activity>
✅ 方案二:代码中动态设置 ActionBar(适用于运行时变更)
如需在特定 Activity 中临时修改 ActionBar 颜色,可在 onCreate() 中使用 getSupportActionBar():
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
// 推荐使用 Resources.getColor()(API 23+)或 ContextCompat
int color = ContextCompat.getColor(this, R.color.blue_500);
actionBar.setBackgroundDrawable(new ColorDrawable(color));
}
}
? 重要补充说明:
- 若目标是修改状态栏(非 ActionBar),且设备运行 Android 5.0(API 21)及以上,必须同时设置
android:statusBarColor并启用FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS(通常由主题自动处理); - 使用
Theme.MaterialComponents系列主题时,colorPrimary会自动应用于 ActionBar,无需手动调用setBackgroundDrawable; - 避免混合使用代码设置与主题配置,以防样式冲突;
- 测试时请在真机或 API 21+ 模拟器上验证 StatusBar 效果,低版本设备仅支持 ActionBar 修改。
综上,优先通过 styles.xml 配置 colorPrimary 和 android:statusBarColor 实现全局、可维护的视觉统一;仅在特殊交互场景下采用代码动态更新。










