美文网首页
Android应用改变状态栏颜色和APP风格保持一致

Android应用改变状态栏颜色和APP风格保持一致

作者: 宇宙大馒头 | 来源:发表于2019-03-05 10:45 被阅读0次

第1步:

在项目moudle下的gradle文件里添加以下依赖

compile 'com.githang:status-bar-compat:0.3'

compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'

第2步:

实现一个改变状态栏颜色的工具类

public class ChangeStatusBarColor {

    public static void initSystemBar(Activity activity) {

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

            setTranslucentStatus(activity, true);

        }

        SystemBarTintManager tintManager = new SystemBarTintManager(activity);

        tintManager.setStatusBarTintEnabled(true);

        // 使用颜色资源

        tintManager.setStatusBarTintResource(R.color.colorAccent);

    }

    @TargetApi(19)

    private static void setTranslucentStatus(Activity activity, boolean on) {

        Window win = activity.getWindow();

        WindowManager.LayoutParams winParams = win.getAttributes();

        final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;

        if (on) {

            winParams.flags |= bits;

        } else {

            winParams.flags &= ~bits;

        }

        win.setAttributes(winParams);

    }

}

第3步:

在需要改变状态栏颜色的地方调用改变状态栏颜色的方法

//改变状态栏的颜色

ChangeStatusBarColor.initSystemBar(this);

第四步(这一步视情况可以忽略):接下来我们看看效果图(前一个图是没有设置颜色的效果图,后一个是设置颜色的效果图):

貌似已经达到效果了,但仔细观察,好像标题栏被提上去了,就是说APP界面全屏了,状态了盖在了APP上,恩,这并非我们想要的效果,那如何将界面从状态栏下部开始呢,只需要在Activity的布局文件最外层控件加上一个属性:

android:fitsSystemWindows="true"就可以啦!看下效果:

第五步(视情况可以忽略这一步):如果系统默认的标题栏还在,可以尝试在values/styles.xml下放入如下

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

 <item name="colorPrimary">@color/colorPrimary

  <item name="colorPrimaryDark">@color/colorPrimaryDark

   <item name="colorAccent">@color/colorAccent

<style name="FullscreenTheme" parent="AppTheme">

    <item name="android:actionBarStyle">@style/FullscreenActionBarStyle

    <item name="android:windowActionBarOverlay">true

    <item name="android:windowBackground">@null

    <item name="metaButtonBarStyle">?android:attr/buttonBarStyle

    <item name="metaButtonBarButtonStyle">?android:attr/buttonBarButtonStyle

<style name="FullscreenActionBarStyle" parent="Widget.AppCompat.ActionBar">

    <item name="android:background">@color/black_overlay

</style>

原文:https://blog.csdn.net/gl_x85/article/details/78248857

原文:https://www.jb51.net/article/92150.htm

相关文章

网友评论

      本文标题:Android应用改变状态栏颜色和APP风格保持一致

      本文链接:https://www.haomeiwen.com/subject/glhnuqtx.html