android 沉浸模式(状态栏透明 跟随布局颜色)

本文介绍了Android应用中的沉浸模式实现方法,通过隐藏系统UI来扩大应用内容展示区域,并提供了具体的Java代码示例。此外,还讲解了如何实现彩色状态栏(即状态栏颜色自适应),包括针对不同SDK版本的适配技巧。

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


沉浸模式:

当启用该模式,应用程序的界面将占据整个屏幕,系统自动将隐藏系统的状态栏和导航栏,让应用程序内容可以在最大显示范围呈现,增加大屏体验,而当需要查看通知的时候只需要从顶部向下滑动就能呼出通知栏。
这是谷歌对于自己的沉浸模式的解释,说白了就是全屏扩展,但其实我想要的并不是这个效果,个人认为这个沉浸模式只需要将activity设为全屏不显示状态栏就可以达到差不多的效果。

下面是沉浸模式的控制代码,再此感谢作者:http://www.jb51.net/article/72150.htm

@SuppressLint("NewApi")
public static void hideSystemUI(View view) {
 view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
 | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
 | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
 | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
 | View.SYSTEM_UI_FLAG_FULLSCREEN
 | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
}
 
@SuppressLint("NewApi")
public static void showSystemUI(View view) {
 view.setSystemUiVisibility(
 View.SYSTEM_UI_FLAG_LAYOUT_STABLE
  | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
  | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
}

彩色状态栏(沉浸式):
沉浸式状态栏的来源是因为很多手机用的是实体按键没有虚拟键(比如华为手机系统,底部的home 返回键 都是在屏幕上虚拟的),开了沉浸模式就只有状态栏消失了。于是沉浸模式成了沉浸式状态栏,两者很容易混淆。个人习惯叫状态栏的颜色自适应,或彩色状态栏,与google沉浸模式的概念无关 。

在此感谢作者:http://blog.csdn.net/jdsjlzx/article/details/50437779

java代码如下:

//透明状态栏  
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {  
            Window window = getWindow();  
            // Translucent status bar  
            window.setFlags(  
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS,  
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);  
//            //透明状态栏  
//            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);  
//            //透明导航栏  
//            getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); 
        }
xml代码如下:

//activity最外层的布局中添加,
 android:fitsSystemWindows="true"
 android:clipToPadding="true"
 android:background="@color/blue"

java代码是在判断当前手机sdk版本, kitkat表示系统版本为4.4, 当低于这个版本时,无法设置彩色状态栏;将此java代码放在oncreate中就行了,对应的布局文件添加xml代码,OK.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值