android状态栏透明代码 android设置状态栏颜色

对于Android来说什么是沉浸式状态栏?给个图你对比看就懂了:Android的沉浸式状态栏是什么?给个图,对比一下就明白了:非沉浸式非浸入沉浸对比上面两张照片,沉浸式和非沉浸式状态栏的区别就出来了。当然,还有其他种类的沉浸式状态栏。比如你在玩游戏的时候,不把状态栏拉下...

对于Android来说什么是沉浸式状态栏?给个图你对比看就懂了:

Android的沉浸式状态栏是什么?给个图,对比一下就明白了:

非沉浸式

非浸入

沉浸

对比上面两张照片,沉浸式和非沉浸式状态栏的区别就出来了。当然,还有其他种类的沉浸式状态栏。比如你在玩游戏的时候,不把状态栏拉下来,状态栏就不会出来。这也是常用的沉浸式状态栏。

好了,在理解了沉浸式状态栏和非沉浸式状态栏的区别之后,我们现在要真正实现它了。

首先我们要先判断我们的安卓版本。如果它大于5.0,我们将调整我们的沉浸式状态栏。然后,我们需要得到我们的俯视图来操作。Android的顶视图是window,所以我们首先得到window,然后将systemUiVisibility设置为全屏,并需要statusBar。当然,别忘了把状态栏设置成透明的。代码如下:

class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_***in) //判断Android的版本是否大于5.0 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ //获取最上层的View进行操作 window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN .or(View.SYSTEM_UI_FLAG_LAYOUT_STABLE) window.statusBarColor = Color.TRANSPARENT//透明 } }}

还有,我们需要在AndroidManifest文件下设置我们活动的主题为NoActionBar,代码如下:

<activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat.Light.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>

最后贴上我的XML布局文件的代码,方便小白阅读和实现:

<?xml version="1.0" encoding="utf-8"?><androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://sche***s.android.com/apk/res/android" xmlns:app="http://sche***s.android.com/apk/res-auto" xmlns:tools="http://sche***s.android.com/tools" android:layout_width="***tch_parent" android:layout_height="***tch_parent" tools:context=".MainActivity"> <LinearLayout android:background="@color/colorAccent" android:layout_height="***tch_parent" android:layout_width="***tch_parent"/>></androidx.constraintlayout.widget.ConstraintLayout>

这种沉浸式状态栏的实现,是我们首先实现的方式。那么想要实现游戏的全屏沉浸式状态栏应该怎么做呢?别担心,我准备好了。我们不改变其他代码。请参考我们systemUiVisibility的设置中的以下代码,添加即可轻松实现。这时候我们的导航栏和状态栏是隐藏的,只有下拉的时候,过一会儿会自动缩回。

window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN .or(View.SYSTEM_UI_FLAG_LAYOUT_STABLE) .or(View.SYSTEM_UI_FLAG_LAYOUT_HIDE_N***IGATION) .or(View.SYSTEM_UI_FLAG_HIDE_N***IGATION) .or(View.SYSTEM_UI_FLAG_FULLSCREEN) .or(View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)

我们的沉浸式状态栏很容易实现。如有不妥之处,请指出,共同探讨!

本文来自习惯有你投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/613067.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 06-29
下一篇 06-29

相关推荐

  • android状态栏透明效果 android透明背景代码

    序原始效果,如下图(顶部有明显的橙色状态栏):修改后(顶部状态栏是透明的):我发现网上写的一些文章不够简洁明了。我整理了一下,***粘贴就可以用在项目里了。首先,将以下四个方法添加到您的活动中(或者将它们封装在一个工具类中)/** * 全透状态栏 */ protected void setStat

    2023-07-26 23:45:01
    887 0
  • android蓝牙开发框架 android蓝牙开发的基本流程

    1.BLE简介:1.1简介。BLE:蓝牙设备即BLE蓝牙低能耗,蓝牙低功耗技术,是蓝牙4.0推出的新技术,为BLE在Android 4.3(API 18)以上的核心功能提供平台支持和API。与传统蓝牙相比,BLE的特点是功耗低,所以现在越来越多的智能设备使用BLE。2.关键概念和术语通用属性配置文件(GATT)

    2023-07-19 03:38:01
    227 0
  • android自定义控件步骤 android如何自定义控件

    在Android中,熟悉的布局和控件都是从基类视图继承的。有几种自定义视图实现方式:① 自定义组合控件:多个控件组合成为一个新的控件,方便多处复用② 继承系统View控件:继承自TextView等系统控件,在系统控件的基础功能上进行扩展③ 继承View:不复用系统控件逻辑,继承View

    2023-07-10 03:36:01
    909 0
  • android刷机方式 安卓手机刷机教程

    近两年,关于安卓刷机的信息越来越少。现在的刷机更多的是极客技术实力的展示,和普通消费者没有任何联系。然而,在2009年至2015年期间,刷牙曾是一名智能***用户的必备技能。2009-2015年,安卓智能机兴起,硬件性能跟不上,推出的安卓定位器运行不流畅,催生了大量第三方rom

    2023-07-09 13:28:01
    837 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信