Android Framework下手机状态栏一体化和一体化后颜色存在的问题

在仿OppoR11上,由于系统上方的状态栏以及虚拟底部栏都是蓝黑色的,oppo中是白色的,我们看下这两个图

这里写图片描述

这里写图片描述

将手机状态栏一体化(背景颜色也修改),由于这里只是一个项目需要修改,所以我们要做属性控制:

     if (opr11Style) {
setTheme(R.style.EmergencyDialerOppoR11Theme);
            setContentView(R.layout.emergency_dialer);
            //修改在一体化状态栏下,状态栏的颜色图标为默认(android 6.0生效)
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                EmergencyDialer.this.getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
            }


             Button back_btn;
            back_btn = (Button) findViewById(R.id.back_btn);
            mMydarksingleline = (DarkSingleLine)findViewById(R.id.mydarksingleline);
            back_btn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                        finish();
                }
            });
        }else {
            setTheme(R.style.EmergencyDialerTheme);
            setContentView(R.layout.commonemergency_dialer);
        }

可以看到在oppo和非oppo下,设置了不同的theme和contentview,那么我们最后看下这两个theme:

    <style name="EmergencyDialerOppoR11Theme" parent="@android:style/Theme.Material.NoActionBar">
        <item name="android:colorPrimary">@color/emergency_dialer_oppo_background</item>
        <item name="android:colorPrimaryDark">@color/emergency_dialer_oppo_background</item>
        <item name="android:windowBackground">@color/emergency_dialer_oppo_background</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:navigationBarColor">@android:color/transparent</item>
        <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
    </style>
  <style name="EmergencyDialerTheme" parent="@android:style/Theme.Material.NoActionBar">
        <item name="android:colorPrimary">@color/emergency_dialer_background</item>
        <item name="android:colorPrimaryDark">@color/emergency_dialer_background</item>
        <item name="android:windowBackground">@color/emergency_dialer_background</item>
        <item name="android:statusBarColor">@android:color/transparent</item>
        <item name="android:navigationBarColor">@android:color/transparent</item>
        <item name="android:homeAsUpIndicator">@drawable/ic_back_arrow</item>
    </style>

至于那个背景色,只需要在根布局设置background为f5f5f5就行,在那个判断没加之前:
这里写图片描述

加完那句判断后之后,我们发现最上方的颜色也会变黑色,这是360系统自己适配的(当打开其他应用,比如设置,相册的时候,顶部白色的状态栏字体会变黑),但是如果不加判断里面的语句,就会一直白色,和一体化的白色背景冲突。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值