android沉浸式状态栏(代码片段)

DullFan DullFan     2022-12-06     621

关键词:

文章目录


前言

4-20分享


提示:以下是本篇文章正文内容,下面案例可供参考

先来看下效果图(夜神模拟器和真机有点差别,我不会搞gif动图,就勉强看下吧):

一、沉浸式状态栏

以下就是代码,加上一些自己的理解:

	//使用
	fullScreen(getActivity());
	//封装成方法
	//通过设置全屏,设置状态栏透明
    private static void fullScreen(Activity activity) 
        //判断版本
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) 
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
                //5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色
                Window window = activity.getWindow();
                //获取顶级视图
                View decorView = window.getDecorView();
                //两个 flag 要结合使用,表示让应用的主体内容占用系统状态栏的空间
                int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE;
                //FLAG_TRANSLUCENT_STATUS 透明状态栏
                window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
                //添加标志,应该是背景图
                window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
                decorView.setSystemUiVisibility(option);
                //设置状态栏颜色
                window.setStatusBarColor(Color.TRANSPARENT);
             else 
                //获得窗口
                Window window = activity.getWindow();
                //获得布局属性
                WindowManager.LayoutParams attributes = window.getAttributes();
                //好获得状态栏颜色
                int flagTranslucentStatus = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
                attributes.flags |= flagTranslucentStatus;
                //设置颜色
                window.setAttributes(attributes);
            
        
    

二、改变标题和状态栏颜色

代码如下(示例):

 //@RequiresApi的作用仅仅是让编译通过
    @RequiresApi(api = Build.VERSION_CODES.M)
    private void initTitle() 
        //addNum:控制标题在什么位置完全显示
        int addNum = 200;
        int Max = 255 + addNum;
        int MIn = 0 + addNum;
        NestedScrollView home_scrollview = mView.findViewById(R.id.home_scrollView);
        RelativeLayout relativeLayout = mView.findViewById(R.id.home_relativeLayout);
        //设置标题背景颜色
        relativeLayout.setBackgroundColor(getResources().getColor(R.color.purple_500));
        //将标题背景透明度设置为0
        relativeLayout.getBackground().setAlpha(0);
        //ScrollView滚动动监听
        home_scrollview.setOnScrollChangeListener(new View.OnScrollChangeListener() 
            @Override
            public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) 
                //渐变主题的核心
                if (scrollY <= Max && scrollY >= MIn) 
                    relativeLayout.getBackground().setAlpha(scrollY - MIn);
                
                //Y轴大于或者等于Max的话标题透明度完全显示
                if (scrollY >= Max) 
                    relativeLayout.getBackground().setAlpha(255);
                
                //Y轴小于或者等于0的话标题透明度完全不显示
                if (scrollY <= 0) 
                    relativeLayout.getBackground().setAlpha(0);
                
            
        );
    

总结

以上就是今天要讲的内容,

android沉浸式状态栏(代码片段)

文章目录前言一、沉浸式状态栏二、改变标题和状态栏颜色总结前言4-20分享提示:以下是本篇文章正文内容,下面案例可供参考先来看下效果图(夜神模拟器和真机有点差别,我不会搞gif动图,就勉强看下吧):一、沉浸式状... 查看详情

android实现沉浸式全屏(代码片段)

前言本文总结Android实现沉浸式全屏的实现方式。实现沉浸式全屏在一些需要全屏显示的场景下,比如玩游戏、看横屏视频的时候,内容全屏,占满窗口的体验会让用户更加沉浸到对内容的消费中,带来好的用户体验。沉浸式显... 查看详情

android--------沉浸式状态栏immersionbar3.0(代码片段)

...使用的一个库ImmersionBar,非常不错,现在都3.0了android4.4以上沉浸式状态栏和沉浸式导航栏管理,适配横竖屏切换、刘海屏、软键盘弹出等问题,可以修改状态栏字体颜色和导航栏图标颜色,以及不可修改字体... 查看详情

android--------沉浸式状态栏immersionbar3.0(代码片段)

...使用的一个库ImmersionBar,非常不错,现在都3.0了android4.4以上沉浸式状态栏和沉浸式导航栏管理,适配横竖屏切换、刘海屏、软键盘弹出等问题,可以修改状态栏字体颜色和导航栏图标颜色,以及不可修改字体... 查看详情

android如何实现5.0以上图片沉浸式状态栏(代码片段)

Android如何实现5.0以上图片沉浸式状态栏1.设置Theme<stylename="TranslucentTheme"parent="Theme.AppCompat.Light.NoActionBar"> <itemname="android:windowTranslucentNavigation"&g 查看详情

android沉浸式状态栏的实现(代码片段)

...0c;第一个浮现在脑海里的词就是“碎片化”。碎片化是让Android开发者很头疼的问题,相信没有哪位开发者会不喜欢“writeonce,runanywhere”的感觉,碎片化让我们不得不耗费精力去校验代码在各个系统版本、各个机型上是否... 查看详情

android沉浸式(透明)状态栏细研-超级细还附demo(代码片段)

前言在Android4.4中引入了沉浸模式的功能,但这个版本非真正的沉浸模式,应该说是透明模式。Android5.0以后才可以在系统层面实现真正的沉浸式状态栏。沉浸式状态栏是为了与当前使用的App页面风格统一,不会显的那... 查看详情

android实现沉浸式状态栏的效果(代码片段)

...体验。下面我来介绍一下一、标题栏延伸到状态栏适用于Android6.0+因为我的标 查看详情

android开发笔记沉浸式状态栏(代码片段)

在Android开发中我们越来越重视用户的App操作体验,在使用App中我们主张减少对用户的干扰,经常会提到一致性体验。为了追求界面的风格的一致性,Google官方在Android4.4开始,支持了系统最上方的状态栏(StatusBar)和... 查看详情

关于如何彻底搞定androidkitkat+沉浸式状态栏效果(代码片段)

...oActionBar的,标题栏使用的是Toolbar控件,请知悉。Android4.4Android4.4以前的版本,状态栏的颜色都是黑色的&# 查看详情

android沉浸式状态栏(代码片段)

在使用沉浸式状态栏时需要注意设置的沉浸颜色为白色还是其他深色的区别1.状态栏字体图标黑色(深色)//5.0以上系统状态栏透明if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP)Windowwindow=getWindow();window.clearFlags(WindowMan... 查看详情

android沉浸式状态栏(代码片段)

文章目录前言一、沉浸式状态栏二、改变标题和状态栏颜色总结前言4-20分享提示:以下是本篇文章正文内容,下面案例可供参考先来看下效果图(夜神模拟器和真机有点差别,我不会搞gif动图,就勉强看下吧):一、沉浸式状... 查看详情

titlelayout——一个android轻松实现通用标准支持沉浸式状态栏的标题栏库(代码片段)

TitleLayout多功能、通用的、可在布局或者使用Java代码实现标题栏;支持沉浸式状态栏,支持左侧返回按钮(不需要手动实现页面返回),左侧支持图片+文字、图片、文字;右侧支持图片、文字等。堆码不易,star支持,万分感谢... 查看详情

android沉浸式(透明)状态栏细研-超级细还附demo(代码片段)

前言在Android4.4中引入了沉浸模式的功能,但这个版本非真正的沉浸模式,应该说是透明模式。Android5.0以后才可以在系统层面实现真正的沉浸式状态栏。沉浸式状态栏是为了与当前使用的App页面风格统一,不会显的那... 查看详情

一个android沉浸式状态栏上的黑科技(代码片段)

...实最开始的时候,我主要是因为工作上的原因想要在Android版的Edge浏览器上实现首页图片沉浸式的功能。那么为了实现这个功能,我提前去做了一些技术调研&# 查看详情

一个android沉浸式状态栏上的黑科技(代码片段)

...实最开始的时候,我主要是因为工作上的原因想要在Android版的Edge浏览器上实现首页图片沉浸式的功能。那么为了实现这个功能,我提前去做了一些技术调研&# 查看详情

一个android沉浸式状态栏上的黑科技(代码片段)

...实最开始的时候,我主要是因为工作上的原因想要在Android版的Edge浏览器上实现首页图片沉浸式的功能。那么为了实现这个功能,我提前去做了一些技术调研&# 查看详情

android沉浸式状态栏的实现(代码片段)

...0c;第一个浮现在脑海里的词就是“碎片化”。碎片化是让Android开发者很头疼的问题,相信没有哪位开发者会不喜欢“writeonce,runanywhere”的感觉,碎片化让我们不得不耗费精力去校验代码在各个系统版本、各个机型上是否... 查看详情