Android设置状态栏隐藏、固定颜色

设置隐藏效果:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.XiaoShuang" parent="Theme.AppCompat.Light.NoActionBar">

        <!--设置沉浸式通知栏-->
        <item name="android:windowTranslucentStatus">true</item>

    </style>
</resources>

设置固定颜色效果:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="Theme.XiaoShuang" parent="Theme.AppCompat.Light.NoActionBar">

        <!-- 状态栏 -->
        <item name="colorPrimaryDark">@color/blue_top</item>

    </style>
</resources>

以上均为设置 values 文件夹中 themes.xml 文件的属性,下面包含了一些其他属性

### Android 状态栏的存在及其设计规范 #### 状态栏概述 在 Android 中,状态栏是一个位于屏幕顶部的小区域,用于显示时间、网络信号强度、电池电量以及其他通知信息。它始终存在于屏幕上,除非应用程序通过特定方式将其隐藏[^1]。 #### 状态栏的设计规范 Android 平台提供了明确的状态栏设计指南,旨在确保用户体验的一致性和美观性。以下是与状态栏相关的几个重要设计原则: 1. **沉浸式体验支持** 自 Android 4.0 开始,官方推荐开发者创建更加沉浸式的应用界面,允许状态栏与其他 UI 元素融合或半透明化处理。这可以通过 `SystemBarTint` 库实现自定义颜色效果[^4]。 2. **状态栏的高度标准化** 根据 Android 官方文档,在不同分辨率下,状态栏高度通常被设定为固定值(以 dp 单位表示),例如常见的 25dp 或者基于具体设备调整后的像素数值。如果设计稿分辨率为 720×1280,则应按照比例换算成实际 px 尺寸[^3]。 3. **避免跨平台元素干扰** 需要注意的是,在开发过程中应当遵循纯正的 Android 风格指导方针,杜绝引入其他操作系统特有的视觉组件[^2]。 #### 实现代码实例 下面展示如何利用第三方库来改变状态栏颜色以及透明度: ```java // 初始化 SystemBarTintManager 对象并激活功能开关 SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); // 设置指定资源作为背景填充色 tintManager.setStatusBarTintResource(R.color.your_custom_color); ``` 此外还可以动态生成一个视图覆盖原生状态栏位置从而达到更灵活的效果: ```java private View createStatusBarView(Activity activity, int color, int alpha) { // 创建一个新的布局容器 View statusBarView = new View(activity); // 给定参数初始化属性集合对象 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, getStatusBarHeight()); // 添加到父级控件当中去 ((RelativeLayout) findViewById(R.id.parent_layout)).addView(statusBarView, params); // 调整外观样式 statusBarView.setBackgroundColor(getTransparentColor(color, alpha)); return statusBarView; } /** * 获取当前机型对应的实际状态栏物理高度 */ public static int getStatusBarHeight() { Resources resources = context.getResources(); int resourceId = resources.getIdentifier("status_bar_height", "dimen", "android"); if (resourceId > 0) { return resources.getDimensionPixelSize(resourceId); } return DEFAULT_STATUS_BAR_HEIGHT; // 默认值 fallback mechanism } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值