(The one day)About Android 系统状态栏与APP主题颜色一致(方法二)

本文提供了一种适用于Android L系统5.0及以上的自定义透明状态栏与导航栏的方法。通过在Manifest.xml文件中添加特定属性和在类文件中编写控制代码,可以实现页面背景的透明化以及状态栏和导航栏的隐藏或透明效果。同时,通过调整style.xml文件中的样式属性,进一步定制应用的外观和行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用于android L系统5.0及以上

方法一:直接在.java 类文件编写控制代码

1、Mainfest.xml文件的<application><activity>下面添加

android:theme="@android:style/Theme.Material.Light.NoActionBar"

2、类文件

protectedvoidonCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setTranslucentStatus(); //此方法要写在setContentView前面
        setContentView(R.layout.activity_main);
    }

 privatevoidsetTranslucentStatus()
    {
        
getWindow().requestFeature(Window.FEATURE_NO_TITLE);

        if(VERSION.SDK_INT>= VERSION_CODES.LOLLIPOP) {

            Window window = getWindow();

            window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS 

                    |WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);//隐藏状态栏或者导航栏

            window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN

                            |View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

                            |View.SYSTEM_UI_FLAG_LAYOUT_STABLE);//设置可见的UI,DecorView控制了最顶层的View

            window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

            window.setStatusBarColor(Color.TRANSPARENT);

            window.setNavigationBarColor(Color.TRANSPARENT);//设置了导航栏的透明效果

    }


注意:在.XML 文件的最外层Layout上需要添加android:fitsSystemWindows="true"


方法二:通过控制Mainfest.xml文件和style.xml文件来控制

可参照http://www.tuicool.com/articles/6rmmymB


1、在Mainfest.xml文件下,在需要的activity路径下添加自定义主题
<activity>
 android:theme="@style/XXX.Theme.Material.Light.NoActionBar"
<activity>

2.在style.xml文件下
一下代码控制页面的背景在类文件设置
<style name="XXX.Theme.Material.Light.NoActionBar" parent="@android:style/Theme.Material.Light.NoActionBar">
<item name="android:windowBackground">@color/white</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowActionModeOverlay">true</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:windowNoTitle">true</item>

<item name="android:windowContentOverlay">@null</item>

<item name="android:actionBarSize">48dip</item>

<item name="android:statusBarColor">@android:color/transparent</item>

<item name="android:colorPrimary">@android:color/transparent</item>

<item name="android:colorPrimaryDark">@android:color/white</item>

<item name="android:colorControlHighlight">@android:color/white</item>

<item name="android:actionMenuTextColor">@android:color/white</item>


在类文件添加:getWindow().setBackgroundDrawableResource(R.drawable.XX);


对于控制的anctionbar延伸到状态栏的状况

直接修改style.xml文件

<style name="XXX" parent="@android:style/Theme.Material.Light.NoActionBar">

<item name="android:colorPrimary">#FFFFFFFF</item>

<item name="android:colorPrimaryDark">#FFFFFFFF</item>

<item name="android:colorAccent">#FFFFFFFF</item>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值