首页 > 其他分享 >Android App状态栏变色:ColorfulStatusBar

Android App状态栏变色:ColorfulStatusBar

时间:2023-04-12 21:01:19浏览次数:54  
标签:int App VERSION Build activity import Android ColorfulStatusBar android


适用于版本大于等于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


为Android4.4以上系统的状态栏和导航栏填充颜色


https://github.com/jgilfelt/SystemBarTint

标签:int,App,VERSION,Build,activity,import,Android,ColorfulStatusBar,android
From: https://blog.51cto.com/u_5454003/6186233

相关文章

  • kubectl create / replace / apply
     使用kubectlcreate命令在Kubernetes里创建这个Deployment对象:kubectlcreate-fnginx.yaml 当我们想要修改镜像的时候,除了使用kubectledit/kubectlsetimage,我们还可以使用修改nginx.yaml文件。然后使用kubectlreplace来触发更新。 #对于这种先kube......
  • 通过UIApplicationMain实现应用内多种事件拦截
    简介UIApplicationMain大家并不陌生,因为在通过XCode建立iOS的Ojective-C工程时肯定会看到。新建的main.m文件长这样:intmain(intargc,char*argv[]){NSString*appDelegateClassName;@autoreleasepool{appDelegateClassName=NSStringFromClas......
  • 美食菜谱APP开发步骤
    美食菜谱APP可以为用户提供各种美食菜谱、食材搭配、烹饪技巧、食材购买等信息,方便用户在家中制作美食。下面是美食菜谱APP开发的一些关键步骤:需求分析:确定用户在使用美食菜谱APP时的需求,比如搜索菜谱、查看食材搭配建议、烹饪步骤视频教程、购买食材等等。功能设计:基于用户......
  • 美食菜谱APP开发功能
    一个美食菜谱APP的主要功能可以包括以下几个方面:菜谱搜索:用户可以通过输入菜名、关键词或食材等信息,搜索到符合条件的菜谱。菜谱浏览:用户可以浏览各种菜谱,包括分类、标签、评分等信息,也可以查看详细的菜谱制作步骤和配料。食材推荐:基于用户的口味和需求,推荐适合的食材搭......
  • uni-app 网络请求
    一、网络请求 在uni中可以调用uni.request方法进行请求网络请求需要注意的是:在小程序中网络相关的API在使用前需要配置域名白名单。  配置请求一下为发送网络请求的基本配置,可根据接口请求数据方法的不同,以不同的方式请求数据 varbaseURL="/api"varba......
  • 看!前端新人如何用ChatGPT开发APP
    作为一种大型的基于GPT-3.5结构的语言模型,ChatGPT由OpenAI训练,采用深度学习技术,通过大量的文本数据学习,可以生成类似于人类自然语言的文字。ChatGPT是一种非常强大的对话引擎,能进行对话、回答问题和完成任务。ChatGPT是一种工具,可以在没有编程知识的情况下使用,为用户提供各种服......
  • MyBatis中XXMapper示例记录
    XXMapper.xml的结构示例如下,包括<resultMap>、<id>、<result>、<select>、<update>、<foreach>、<if>标签的使用:<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper......
  • Android动态设置drawableRight
    DrawablerightDrawable=getResources().getDrawable(R.drawable.icon);//调用setCompoundDrawables时,必须调用Drawable.setBounds()方法,否则图片不显示rightDrawable.setBounds(0,0,rightDrawable.getMinimumWidth(),rightDrawable.getMinimumHeight());//left,top,r......
  • 如何设计一款App(译文)
    1.译者序2.前言3.准备开始3.1.设置应用的目标3.2.制定计划3.3.确定市场定位和研究竞争对手4.设计App4.1.创建线框图4.2.开始设计应用4.2.1.一些设计方案实现选项4.2.1.1.直接与设计师合作4.2.1.2.举办应用程序设计竞赛4.2.1.3.使用应用程序生成器......
  • 直播电商平台开发,Android | 图片缩放、自动居中
    直播电商平台开发,Android|图片缩放、自动居中1、activity_main.xml <?xmlversion="1.0"encoding="utf-8"?><FrameLayout  xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="fill_parent"  a......