状态栏

android界面UI美化:沉浸模式、全透明或半透明状态栏及导航栏的实现

◇◆丶佛笑我妖孽 提交于 2019-11-30 02:45:26
android api19开始我们就能对顶部状态栏和底部导航栏进行半透明处理了,而api21开始则可以实现全透明状态栏与导航栏以及开启沉浸模式,至于什么是沉浸模式,大家百度一下应该就都知道了,有一点需要强调的是全透明不是沉浸模式,前者只是将状态栏、导航栏的背景设置为完全透明,而后者则是完全将状态栏与导航栏隐藏并且只要在屏幕顶部下滑或在底部上滑就能短暂呼出状态栏与导航栏当然几秒钟之后还是会隐藏的; 下面三张图的效果分别是:普通状态栏,半透明状态栏,全透明状态栏 下面看方法: /** * 设置透明状态栏与导航栏 * @param navi true不设置导航栏|false设置导航栏 */ public void setStatusBar(boolean navi) { //api>21,全透明状态栏和导航栏;api>19,半透明状态栏和导航栏 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); if (navi) {

透明状态栏(沉浸式状态栏)

独自空忆成欢 提交于 2019-11-30 02:44:56
首先:欢迎转载,但是请@一下本人并附上原文链接 在首先:标题所说的两种并没有什么卵关系,避免被喷要先说一下透明状态栏以及状态栏的颜色设定才是今天讨论的话题.但是国人喜欢把一些普通的事情凸显的很具逼格,(沉浸你大爷啊!),至于名字起因由来已不可考,所以大家不要再这个问题上讨论了- - 上干货 4.4以后开始支持windowTranslucentStatus(配置到theme里边就可以了)属性也就是所说的透明状态栏 但是这里还设计到一个属性 android:fitsSystemWindows=”true” 配置为真时系统不会计算状态栏的高,把状态栏直接透明覆盖到应用的上层,为假时则反之,好吧语文老师死得早,可以试一下就知道自己需要那种 这就是简单的所谓沉浸式状态栏 关于API21 以后出现变色状态栏在下篇博文中详述 来源: CSDN 作者: 武阿震 链接: https://blog.csdn.net/qq_35840016/article/details/52511435

启动页、沉浸式状态栏

浪子不回头ぞ 提交于 2019-11-30 02:44:04
情景 效果 使用 启动页 沉浸式状态栏 情景 启动页 :简而言之,微信看地球的图片。用图片代替app初始化过程没有用户可见界面的白屏,使app更加“友好”。 沉浸式状态栏 :或者称透明状态栏。将状态栏颜色与app颜色一致,使用户界面更加整体。 效果 使用 启动页 一、 为Activity设置Theme < activity android:name = ".MainActivity" android:theme = "@style/LaunchScreenTheme" > < intent-filter > < action android:name = "android.intent.action.MAIN" /> < category android:name = "android.intent.category.LAUNCHER" /> </ intent-filter > </ activity > 二.、LaunchScreenTheme中设置windowBackground < style name = "LaunchScreenTheme" parent = "Theme.AppCompat.Light.NoActionBar" > < item name =" android :windowBackground" > @ drawable/launch_screen

Android透明状态栏

大城市里の小女人 提交于 2019-11-30 02:43:46
对沉浸式和透明状态栏的理解: 沉浸式:厂商用来装逼的术语,就是我们常说的透明状态栏 透明式:状态栏字体图标可见,背景色为透明 透明状态栏实现方法: 一、半透明效果: 方法1:在需要设置半透明效果的activity中加入以下代码:设置状态栏颜色为透明即可 if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.setStatusBarColor(Color.TRANSPARENT); } 方法2: 第一步:在Androidmanifest中为需要设置半透明效果的activity加入自定义主题,theme_main为自定义主题 <activity android:name=".MainActivity" android:theme="@style/theme_main"> 第二步:在styles.xml文件中加入自定义主题,设置如下 <style name="theme_main" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowTranslucentStatus">true</item> </style> 第三步:在activity的xml文件中,根节点插入

Android 实现沉浸式状态栏

我是研究僧i 提交于 2019-11-30 02:43:28
上一篇文章将 Android 实现变色状态栏 我们实现了变色的状态栏,也介绍了沉浸式状态栏和透明状态栏的区别,这篇文章我们实现沉浸式状态栏。 沉浸式状态栏的来源就是很多手机用的是实体按键,没有虚拟键,于是开了沉浸模式就只有状态栏消失了。于是沉浸模式成了沉浸式状态栏。 我们先来看下具体的效果 开启沉浸模式后,状态栏消失,从顶部向下滑动,状态栏出现,退出沉浸模式,状态栏也出现了。 我们的代码基于前一篇文章。首先是两个开启沉浸模式和关闭沉浸模式的函数 @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

漫谈透明状态栏和沉浸式状态栏

会有一股神秘感。 提交于 2019-11-30 02:43:16
今天来写一个类似于qq空间的那种沉浸式效果。先来看看qq空间的这种效果 我们看到,头部局上拉的时候有个头布局的透明是从0变化到1,当你下拉的时候,头部局透明度又从1变化到0了。始终效果看起来还是不错的,当然这种效果要配合透明状态栏才好看。而且我们可以再很多应用各种会看到这种广告遮住头布局的方式。比如160的软件。 看起来效果还是挺酷炫的。现在我们就来讲讲他的实现方式吧。首先来看下demo实现的效果图 居然说到了透明状态栏,也说一下关于透明状态栏和沉浸式状态栏吧。我们首先说一下他的概念。 1.沉浸式全屏模式 隐藏status bar(状态栏)使屏幕全屏,让Activity接收所有的(整个屏幕的)触摸事件。相当于就是隐藏状态栏,让手机浏览进入全屏模式 2.透明化系统状态栏 透明化系统状态栏,使得布局侵入系统栏的后面,必须启用fitsSystemWindows属性来调整布局才不至于被系统栏覆盖。 透明状态栏的意思是指布局从状态栏开始。然后状态栏的一些东西比如电量那些基本信息会覆盖在布局上面。但透明状态栏是android 4.4及以上版本才有这种效果,4.4以下是不支持透明状态栏的。我们先看下不设置透明状态栏的效果。 布局文件是这样的 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http:/

沉浸式状态栏与透明状态栏

£可爱£侵袭症+ 提交于 2019-11-30 02:42:22
透明状态栏 在Activity中输入这样的一段代码 if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); getWindow().setNavigationBarColor(Color.TRANSPARENT); getWindow().setStatusBarColor(Color.TRANSPARENT); } 之后,之后就没了. ** 沉浸式状态栏 同样在在Activity中输入这样的一段代码 @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus && Build.VERSION.SDK_INT >= 19) { View decorView =

沉浸式与透明状态栏

孤人 提交于 2019-11-30 02:41:19
沉浸式:(Immersive Mode) 沉浸式提供参与者完全沉浸的体验,就是给用户一种置身于虚拟世界的感觉。对应到移动应用上就是全屏 效果,例如 游戏全屏、视频的全屏都是提供用户沉浸式的体验。 Android系统中的一个Activity(界面)其实是有许多系统元素的,如下图所示一个Activity,包含了状态栏 (StatusBar)、ActionBar,有些手机系统上底部还有导航栏(NavigationBar)。这些都是属于系统元素。而沉浸式就是隐 藏掉这些所有的系统元素,整个界面都用来展示内容。 而我们在日常开发中经常会遇到的设计是,状态栏与ActionBar的颜色一致,或者Activity的内容延伸到状态栏; 如下图所示: 上图中的两种设计并不是网上所说的“沉浸式状态栏”,并没有“沉浸式状态栏”这一说,只有沉浸式,上图的 两种设计可以说是一种透明状态栏。 那么下面我们来看如何实现上面这两种设计: 一、设置状态栏颜色与ActionBar颜色一致 这个实际上就是修改状态栏的颜色; (1)在Android 4.4之前并没有API可以修改状态栏的颜色。 (2)Android 4.4上也没有API可以修改状态栏的颜色,但是Android4.4提出了一个透明状态栏的概念,使得手机 顶部状态栏颜色透明。 getWindow().addFlags(WindowManager

沉浸式状态栏/透明状态栏

亡梦爱人 提交于 2019-11-30 02:40:45
使状态栏和应用顶部控件的颜色一致。 实现步骤: 一、在基类里的onCreate中添加状态栏属性: // 设定状态栏的颜色,当版本大于 4.4 时起作用 if (Build .VERSION .SDK _INT >= Build .VERSION _CODES .KITKAT ) { // 透明状态栏 getWindow() .addFlags ( WindowManager .LayoutParams .FLAG _TRANSLUCENT_STATUS) ; // // 透明导航栏 // getWindow() .addFlags ( // WindowManager .LayoutParams .FLAG _TRANSLUCENT_NAVIGATION) ; } 二、在布局中顶部控件的父控件假如如下代码: android:clipToPadding=”true” android:fitsSystemWindows=”true”。 如在自定义标题栏title_bar中: < RelativeLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:id = "@+id/title_height" android:layout_width = "match_parent" android

从0到1优雅实现沉浸式状态栏

好久不见. 提交于 2019-11-29 20:55:59
目录 1. 概述 2. 实现方案 2.1 前期工作 2.1.1 修改应用主题 2.1.2 获取状态栏高度 2.2 Android 5.0+ 2.2.1 设置状态栏颜色 2.2.2 设置状态栏文字颜色 2.2.3 设置状态栏透明 2.3 Android 4.4+ 2.3.1 设置状态栏颜色 2.3.2 设置状态栏透明 3. 特殊场景 3.1 启动页 3.2 弹窗 参考 1. 概述 现在市面上绝大多数APP都实现了沉浸式状态栏的效果,该效果可以极大地提升用户的使用体验。但是,APP默认的情况下只是设定一个固定的状态栏颜色,那么就需要我们通过代码去动态修改状态栏颜色的。那么,如何去实现呢? 首先来说,从Android 4.4开始才能实现沉浸式状态栏的,所以如果您的APP也支持Android 4.4以下版本,那还需要对Android 4.4以下版本做“不支持沉浸式状态栏”处理。 那么,从Android 4.4开始,大概可以分成三个阶段来实现沉浸式状态栏: Android4.4(API 19) - Android 5.0(API 21):这个阶段的实现方式为:通过FLAG_TRANSLUCENT_STATUS设置状态栏为透明并且为全屏模式,然后通过添加一个与StatusBar一样大小的View,将View的背景设置为要设置的颜色,从而实现沉浸式。 Android 5.0(API 21) -