OPPO沉浸式状态栏适配 安卓4.4-安卓6.0
2018-01-24 09:50
302 查看
1.沉浸式状态适配说明
这里介绍通过设置窗口全屏Flag实现OPPO机型状态栏沉浸式方法:
Android5.0及以上版本:
Android4.4及以前的版本设置方法:
关于状态栏沉浸式的设置还有其他的方法,网上有很多这类文章,这里只介绍其中一种通用方法,开发者可以根据应用具体的业务需求选择合适的设置方式实现。
2.状态栏字符反色适配说明
背景:
Android4.4开始,ColorOS为状态栏字符反色提供支持。
Android6.0及以上版本,Google提供标准的方法实现,并且ColorOS完全兼容原生的方法,对于基于Android6.0以后的OPPO机型,采用Google提供的方法即可实现对状态栏字符的反色显示。
开发者需要做的:
1.对Android版本是6.0及以后的OPPO机型
使用Google提供
参考实例:
2.对Android4.4到Android5.0版本的OPPO机型
使用ColorOS提供
参考实例:
为方便开发者对于OPPO机型的反色适配,提供了用于设置状态栏显示效果的接口方法,开发者可以根据应用需求,动态设置状态栏图标为白色或是黑色, 接口传入值ture时状态栏图标为黑色,接口转入值为false状态栏图标为白色 。
OPPO沉浸式状态栏适配说明 [ 原文点我 ]
这里介绍通过设置窗口全屏Flag实现OPPO机型状态栏沉浸式方法:
Android5.0及以上版本:
Window window = activity.getWindow(); View decorView = window.getDecorView(); decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT);
Android4.4及以前的版本设置方法:
Window window = activity.getWindow(); WindowManager.LayoutParams attributes = window.getAttributes(); attributes.flags |= WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; window.setAttributes(attributes);
关于状态栏沉浸式的设置还有其他的方法,网上有很多这类文章,这里只介绍其中一种通用方法,开发者可以根据应用具体的业务需求选择合适的设置方式实现。
2.状态栏字符反色适配说明
(经实测,此方法在OPPO R7Plusm 安卓5.1.1无效,其他版本未知)
背景:
Android4.4开始,ColorOS为状态栏字符反色提供支持。
Android6.0及以上版本,Google提供标准的方法实现,并且ColorOS完全兼容原生的方法,对于基于Android6.0以后的OPPO机型,采用Google提供的方法即可实现对状态栏字符的反色显示。
开发者需要做的:
1.对Android版本是6.0及以后的OPPO机型
使用Google提供
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR的Flag来设置状态栏图标黑色显示效果 。
参考实例:
Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
2.对Android4.4到Android5.0版本的OPPO机型
使用ColorOS提供
ColorStatusbarTintUtil.SYSTEM_UI_FLAG_OP_STATUS_BAR_TINT的Flag来设置状态栏图标黑色效果,由于该标记未公开,开发者需要在应用代码中定义。
参考实例:
final int SYSTEM_UI_FLAG_OP_STATUS_BAR_TINT = 0x00000010; Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.getDecorView().setSystemUiVisibility(SYSTEM_UI_FLAG_OP_STATUS_BAR_TINT);
为方便开发者对于OPPO机型的反色适配,提供了用于设置状态栏显示效果的接口方法,开发者可以根据应用需求,动态设置状态栏图标为白色或是黑色, 接口传入值ture时状态栏图标为黑色,接口转入值为false状态栏图标为白色 。
public void setLightStatusBarIcon(boolean lightMode) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); int vis = window.getDecorView().getSystemUiVisibility(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (lightMode) { vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } else { vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES. KITKAT) { if (lightMode) { vis |= SYSTEM_UI_FLAG_OP_STATUS_BAR_TINT; } else { vis &= ~SYSTEM_UI_FLAG_OP_STATUS_BAR_TINT; } } window.getDecorView().setSystemUiVisibility(vis); }
OPPO沉浸式状态栏适配说明 [ 原文点我 ]
相关文章推荐
- 初学者---Android 沉浸式(透明)状态栏适配
- 关于在安卓4.4上实现沉浸式状态栏
- RN app开发适配安卓6.0 状态栏字体颜色为深色
- Fragment切换中适配"沉浸式状态栏"
- 沉浸式状态栏,终结版,简单方面,适配多种机型,直接调用
- Android沉浸式(透明)状态栏适配
- Android沉浸式状态栏适配
- 关于MIUI 9沉浸式状态栏的最新适配
- Android 沉浸式状态栏(透明)适配
- 详解关于MIUI 9沉浸式状态栏的最新适配
- android适配pad和部分手机底部虚拟按键+沉浸式状态栏
- 【Android】状态栏相关适配(判断MIUI,Flyme,状态栏图标颜色切换,获取状态栏高度,沉浸式状态栏相关等)
- 一行代码实现沉浸式状态栏
- Android状态栏适配源码解析
- Android之---沉浸式状态栏的错误理解(官方有沉浸模式的感念但是没有沉浸式状态栏的说法)
- android沉浸式状态栏
- 三种方式实现沉浸式状态栏
- Android沉浸式状态栏 + actionBar渐变 + scrollView顶部伸缩
- Android实现沉浸式状态栏
- android沉浸式状态栏的实现