`

Android App状态栏变色:ColorfulStatusBar

阅读更多
适用于版本大于等于19以上。
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Build;
import android.view.View;
import android.view.ViewGroup;

/**
 * Created by zhy on 15/9/21.
 */
public class StatusBarCompat
{
    private static final int INVALID_VAL = -1;
    private static final int COLOR_DEFAULT = Color.parseColor("#20000000");

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    public static void compat(Activity activity, int statusColor)
    {

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
        {
            if (statusColor != INVALID_VAL)
            {
                activity.getWindow().setStatusBarColor(statusColor);
            }
            return;
        }

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
        {
            int color = COLOR_DEFAULT;
            ViewGroup contentView = (ViewGroup) activity.findViewById(android.R.id.content);
            if (statusColor != INVALID_VAL)
            {
                color = statusColor;
            }
            View statusBarView = new View(activity);
            ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
                    getStatusBarHeight(activity));
            statusBarView.setBackgroundColor(color);
            contentView.addView(statusBarView, lp);
        }

    }

    public static void compat(Activity activity)
    {
        compat(activity, INVALID_VAL);
    }


    public static int getStatusBarHeight(Context context)
    {
        int result = 0;
        int resourceId = context.getResources().getIdentifier("status_bar_height", "dimen", "android");
        if (resourceId > 0)
        {
            result = context.getResources().getDimensionPixelSize(resourceId);
        }
        return result;
    }
}


用法:

Activiy onCreate中添加:
StatusBarCompat.compat(this);

如果需要制定状态栏颜色,使用此方法:
StatusBarCompat.compat(this, 0xFFFF0000);


https://github.com/hongyangAndroid/ColorfulStatusBar
http://www.open-open.com/lib/view/open1460378891143.html

为Android4.4以上系统的状态栏和导航栏填充颜色
https://github.com/jgilfelt/SystemBarTint
分享到:
评论

相关推荐

    android 沉浸式+变色状态栏 Demo

    在Android开发中,沉浸式(Immersion)状态栏和变色状态栏是提升应用用户体验的重要设计元素。这两种技术主要用于提供更美观、更具沉浸感的界面,使得应用内容能够更好地延伸到屏幕顶部,与状态栏融为一体。本文将...

    Unity显示Android手机状态栏

    本文将详细讲解如何在Unity中实现显示Android手机的状态栏,并探讨透明状态栏和Android系统的黑底状态栏设置。 首先,我们要了解Unity引擎本身并不直接支持对Android状态栏的操作,这需要借助于Java插件或者Unity的...

    Android自定义状态栏颜色与应用标题栏颜色一致

    在Android开发中,为了让应用的用户体验更加统一和美观,有时我们需要自定义状态栏的颜色,使其与应用的标题栏颜色保持一致。在iOS系统中,这种效果很常见,但早期的Android版本并不支持这一特性。不过,从Android ...

    uni-app nvue沉浸式状态栏(线性渐变色).vue

    uni-app nvue沉浸式状态栏(线性渐变色).vue

    Android状态栏一体化(沉浸式)的实现(Eclipse版)

    在Android应用开发中,"状态栏一体化"或"沉浸式状态栏"是一种常见的设计手法,它使得应用界面能够无缝地延伸到状态栏区域,提供更美观、统一的视觉体验。在Eclipse环境下实现这一功能虽然相对较为繁琐,但仍然可以...

    android状态栏显示

    在Android开发中,状态栏(StatusBar)是用户界面不可或缺的一部分,它显示了系统时间、电池状态、网络连接等重要信息。有时候,开发者需要对状态栏进行定制,例如改变颜色、图标或者隐藏/显示状态栏,以实现特定的...

    Unity3D Android 状态栏

    在Android平台上,Unity3D允许开发者实现丰富的用户界面,包括控制状态栏和虚拟按键的功能。本文将深入探讨如何在Unity3D 5.3.4版本中实现在Android 2.0系统上显示状态栏和虚拟按键,并支持沉浸式透明效果。 首先,...

    Android透明状态栏demo

    在Android开发中,透明状态栏(Transparent Status Bar)是一种流行的设计趋势,它使得应用界面能够延伸至设备的状态栏区域,创造出更加沉浸式的用户体验。透明状态栏允许内容无缝地过渡到状态栏下方,使得整体视觉...

    Android-自定义Android平台的状态栏

    在Android应用开发中,自定义状态栏是一种常见的需求,它能提供更加个性化和沉浸式的用户体验。状态栏一体化指的是让应用的界面与系统状态栏无缝融合,通常涉及到颜色、透明度以及在不同场景下的动态变化。在本教程...

    Android隐藏状态栏和标题栏,相当于全屏效果

    Android 隐藏状态栏和标题栏,实现全屏效果 Android 操作系统中,状态栏和标题栏是默认情况下显示的,但是有时候,我们需要隐藏它们以实现全屏效果。隐藏状态栏和标题栏可以通过两种方式来实现:使用预定义样式和...

    Android-Android改变状态栏颜色状态栏透明

    在Android应用开发中,改变状态栏的颜色和实现透明效果是一项常见的需求,这可以让应用程序界面更加美观,提升用户体验。本文将详细讲解如何在Android中实现这一功能。 首先,我们需要理解Android的状态栏。状态栏...

    android沉浸式状态栏 布局可以顶到状态栏上

    在Android开发中,沉浸式状态栏(Immersive Status Bar)是一种设计趋势,它使得应用内容可以延伸到手机屏幕的状态栏区域,提供更沉浸式的用户体验。这种效果常见于全屏游戏或视频播放等应用场景,目的是减少界面...

    Android沉浸式状态栏 一体化状态栏信号栏

    - **启用方式**:Android 4.4 (KitKat) 引入了透明状态栏的支持,可以通过设置`Window`的` FLAG_FULLSCREEN` 和 `SYSTEM_UI_FLAG_LAYOUT_STABLE` 以及 `SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN` 来实现。 - **API支持**...

    Android App 隐藏显示标题栏、状态栏、导航栏

    在Android应用开发中,隐藏或显示标题栏、状态栏以及导航栏是常见的需求,这有助于创建沉浸式用户体验或者根据设计需求调整界面布局。本篇将深入探讨如何在Android中实现这些功能。 首先,我们来讨论如何隐藏和显示...

    Android源代码:沉浸式状态栏

    在Android开发中,沉浸式状态栏(Immersive Status Bar)是一种流行的设计趋势,它能够提供更为沉浸式的用户体验,让应用的内容尽可能地充满整个屏幕,减少了状态栏对视线的干扰。这种设计通常与全屏显示、游戏或者...

    Learn Android Studio 3 Efficient Android App Development epub

    Learn Android Studio 3 Efficient Android App Development 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书

    Android仿百度外卖APP首页状态/标题栏效果(沉浸式状态栏)

    标题“Android仿百度外卖APP首页状态/标题栏效果(沉浸式状态栏)”提到的技术点,主要是如何在Android应用中实现类似百度外卖APP那样的顶部状态栏和标题栏一体化的视觉效果,让标题栏融入到系统状态栏中,形成无边界...

    AndroidAPP开发入门教程.pdf

    Android APP 开发入门教程 Android APP 开发入门教程主要介绍了 Android APP 的开发流程,从 SDK 下载、开发环境搭建、代码编写、APP 打包等步骤一一讲解。本教程通过实践操作,带领读者一步步完成 Android APP 的...

    Android沉寂式状态栏

    在Android开发中,"沉寂式状态栏"(也称为沉浸式状态栏)是一种流行的设计趋势,它使得应用内容能够延伸到状态栏区域,提供更沉浸式的用户体验。这种设计尤其适用于那些希望内容占据屏幕更多空间的应用,如游戏、...

    ChameleonMiniApp变色龙硬件Android APP

    "ChameleonMiniApp变色龙硬件Android APP"是一款专为Android设备设计的应用程序,它能够与硬件设备通过OTG(On-The-Go)技术进行连接,实现设备间的交互。这款APP未经编译,用户需要自行在手机上进行安装。下面我们...

Global site tag (gtag.js) - Google Analytics