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

用于android L系统5.0及以上

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

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

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

2、类文件

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

  private void setTranslucentStatus()
     {
        
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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值