首页 > 系统 > Android > 正文

Android 之低版本高版本实现沉浸式状态栏

2019-11-07 23:08:22
字体:
来源:转载
供稿:网友

沉浸式状态栏确切的说应该叫做透明状态栏。一般情况下,状态栏的底色都为黑色,而沉浸式状态栏则是把状态栏设置为透明或者半透明。

沉浸式状态栏是从android Kitkat(Android 4.4)开始出现的,它可以被设置成与APP顶部相同的颜色,这就使得切换APP时,整个界面就好似切换到了与APP相同的风格样式一样。在内容展示上会显得更加美观。

功能:自行控制状态栏颜色,可以调节状态栏的亮度,还可以把背景图片作为导航栏

本博客主要说的是低版本Android4.4以下或者高版本Android4.4以上都可实现来实现状态栏,效果如图:

          

测试时,低版本高版本都是可行的。

代码:

父类Activity

/** * Created by zq on 16/12/16. * * 此类便于其他Activity一同实现状态栏,只要集成此类就OK了 * */public abstract class BaseActivity extends AppCompatActivity {    @Override    PRotected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setMainLayout();        setStatusBar();    }    /**     * 初始化布局     */    protected abstract void setMainLayout();    /***     *状态栏 (自己选颜色即可)     */    protected void setStatusBar() {        StatusBarUtil.setColor(this, getResources().getColor(R.color.colorAccent));    }}

MainActivity.java

public class MainActivity extends BaseActivity {    @Override    protected void setMainLayout() {        setContentView(R.layout.activity_main);        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                startActivity(new Intent(MainActivity.this,BackImaActivity.class));            }        });    }}

图片背景状态栏

/** * Created by zq on 16/12/16. * */public class BackImaActivity extends BaseActivity {    @Override    protected void setMainLayout() {        setContentView(R.layout.back_activity);        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                StatusBarUtil.setTranslucent(BackImaActivity.this,111);            }        });    }    /****     * 重写父类方法,覆盖的作用,可以实现状态栏的不同颜色或背景     */    protected void setStatusBar() {        /**         * 参数         * 第一个:当前上下文         * 第二个:状态栏透明程度,值越大就越暗 0表示完全安背景显示  之范围(0-->255)         */        StatusBarUtil.setTranslucent(this,0);    }}

style.xml

 <style name="APPTheme" parent="Theme.AppCompat.Light.DarkActionBar">        <!-- Customize your theme here. -->        <item name="colorPrimary">@color/colorPrimary</item>        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>        <item name="colorAccent">@color/colorAccent</item>        <item name="windowNoTitle">true</item>        <item name="windowActionBar">false</item>    </style>不需要其他配置,只需要在style.xml文件中添加这两行代码即可:

<item name="windowNoTitle">true</item> <item name="windowActionBar">false</item>

由于代码太多,完整代码未给出,源码直接下载即可

源码点击下载


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表