Android 沉浸式状态栏

Android 沉浸式状态栏完美解决方案 国内很多类似的文章, 我只想说一个字, 真tm乱! 我看不懂… 评论里面 全在说无效什么的 (我试了也无效, 好厉害的样子) 不废话,回到正题, 首先贴上一个众所周知的库 SystemBarTint 我只要这个类 https://github.com/jgilfelt/SystemBarTint/blob/master/library/src/com/readystatesoftwar... 阅读详情

Android 沉浸式状态栏 已经算是出来比较久的技术了,只不过我们公司项目最近要优化一下UI,就研究了一下,在此特别感谢简书作者扬州慢_提供的解决方案,原文链接戳这里。

言归正传,Android沉浸式分为以下几个维度去处理

1.API < 19(无法进行沉浸式)

2.API = 19(添加与状态栏同等宽高的View)

3.API > 19   (设置状态栏颜色) 「 API > 22 可以修改状态栏的字体和图标颜色,避免因设置颜色相近看不清状态栏原有的字体」

接下来逐条阐明具体解决方案,

(获取状态栏高度以及获取actionbar的高度的函数会在最后给出,大家先看懂原理)

首先,对于API < 19(即安卓4.4系统以下)的没办法做处理,而且市场占有率很低,可以忽略;

其次,对于API = 19(即安卓4.4系统),核心代码如下:

两种情况处理:1.有ActionBar(直接调用系统的才算,toolbar不算在这个分类里面)

                         2.没有ActionBar

//增加占位状态栏

ViewGroup decorView = (ViewGroup) mActivity.getWindow().getDecorView();

View statusBarView = new View(activity);

//为statusBarView准备的布局参数,全屏宽,与状态栏一样的高度

ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, getStatusBarHeight(activity));

ViewGroup rootView = mActivity.findViewById(android.R.id.content);

//通过外面设置是否有actionbar

if (isActionBar()) {

//要增加内容视图的 paddingTop,否则内容被 ActionBar 遮盖

rootView.setPadding(0, getStatusBarHeight(mActivity) + getActionBarHeight(mActivity), 0, 0);

} else {

rootView.setPadding(0, getStatusBarHeight(mActivity), 0, 0);

}

//为占位状态栏设置我们想要的颜色

statusBarView.setBackgroundColor(color);

//为DecorView添加占位状态栏

decorView.addView(statusBarView, lp);

以上是代码逻辑的阐述,接下来就是针对API = 19的style的特殊处理(文件路径 values-v19/styles.xml)

//为你的app的主题加入以下两个item

<item name="android:windowTranslucentStatus">true</item>

<item name="android:windowTranslucentNavigation">false</item>

那么这两个属性是用来干什么的呢?(后续补充)

最后,对于 API > 19(即安卓5.0及以上),核心代码如下:

//直接设置状态栏颜色

Window window = mActivity.getWindow();

//取消设置透明状态栏,使 ContentView 内容不再沉浸到状态栏下

window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);

//需要设置这个 flag 才能调用 setStatusBarColor 来设置状态栏颜色

window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);

activity.getWindow().setStatusBarColor(color);

补充,对于 API > 22(即安卓6.0及以上),设置状态栏的字体颜色,核心代码如下:

/** * 设置状态栏文字颜色 bDark为TRUE代表沉浸式 */

private static void setStatusBarMode(Activity activity, boolean bDark) {

    //6.0以上

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

        View decorView = activity.getWindow().getDecorView();

        if (decorView != null) {

              int vis = decorView.getSystemUiVisibility();

              if (bDark) {

                vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;

                } else {

                vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;

                }

        decorView.setSystemUiVisibility(vis);

        }

    }

}

什么原理呢:????(后续补充)

getStatusBarHeight获取状态栏高度的函数如下:

/** * 利用反射获取状态栏高度 */

private static int getStatusBarHeight(Activity activity) {

        int result = 0; //获取状态栏高度的资源id

        int resourceId = activity.getResources().getIdentifier("status_bar_height", "dimen", "android");

        if (resourceId > 0) {

            result = activity.getResources().getDimensionPixelSize(resourceId);

       }

        Log.e("getStatusBarHeight", result + "");

        return result;

}

getActionBarHeight获取ActionBar高度的函数如下:

/** * 获得 ActionBar 的高度 */

public static int getActionBarHeight(Context context) {

        int result = 0;

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {

                TypedValue tv = new TypedValue();

                //划重点!!!!!!之前在4.4手机上出现了部分UI会被遮住一点点就是在这里出的问题,一定要看你的actionbar用的是哪个包里面的,不同包下面大小有些差异

                context.getTheme().resolveAttribute(android.support.v7.appcompat.R.attr.actionBarSize, tv, true);

                result = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics());

        }

return result;

}

在设置沉浸式的同时,我们要对actionbar做去除阴影处理,代码如下:

/*** 去除 ActionBar 阴影 */

public void clearActionBarShadow() {

        if (Build.VERSION.SDK_INT >= 21) {

                ActionBar supportActionBar = ((AppCompatActivity) mActivity).getSupportActionBar();

                if (supportActionBar != null) {

                        supportActionBar.setElevation(0);

                }

        }

        return this;

}

Android 最新实现沉浸式状态栏的效果 什么是状态栏: 是指手机左上最顶上,显示中国移动、安全卫士、电量、网速等等,在手机的顶部。下拉就会出现通知栏。 下面我放一张图带大家认识一下 沉浸式状态栏:: 简单来说就是状态栏会根据手机内容适应性变色,使软件和系统本身更加融为一体,大大提升了用户体验。 下面我来介绍一下 一、标题栏延伸到状态栏 适用于Android6.0+ 因为我的标题栏是白色,而Android 系统状态栏的字色和图标颜色也为白色,所以这样就会导致状态栏上的内容比如时间,电量等等就看不清楚了。 这个问题在Android 6.0的时候得到 阅读详情

相关推荐

为什么RingMo能成为遥感领域的首个生成式自监督基础模型?

RingMo作为遥感领域首个生成式自监督基础模型,通过创新的图像掩码建模技术解决了传统方法在遥感图像处理中的挑战。该模型利用两百万张多元数据集进行预训练,在小目标检测、场景分类等任务上表现卓越,显著提升了性能指标。RingMo的技术突破为遥感图像解译提供了高效解决方案,降低了标注成本并增强了模型泛化能力。

ll5678的博客 691

Android 沉浸式状态栏归纳

参考文章 沉浸式状态栏就是将标题栏颜色与状态栏颜色设置为同一种颜色,Android不同的版本设置沉浸式方法也不大一样. 4.4时设置方法 代码设置或者主题设置 activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); 主题设置,在values-v19文件夹下 <style name="MDTheme" parent="Theme.Design.Light.NoActionBar"&gt.

碧云天丶 519

手把手教你用.NET Reactor 7.3.0保护跨平台.NET应用(含macOS/Rider配置)

本文详细介绍了如何使用.NET Reactor 7.3.0为跨平台.NET应用提供代码保护。文章重点涵盖了在macOS环境下的GUI工具安装、与JetBrains Rider的深度集成配置,并针对Avalonia UI框架提供了专项保护策略和避坑指南,帮助开发者有效防止代码被反编译和破解。

coffee的博客 594

史上最完美的Android沉浸式状态导航栏攻略

前言 最近我在小破站开发一款新App,叫高能链。我是一个完美主义者,所以不管对架构还是UI,我都是比较抠细节的,在状态栏和导航栏沉浸式这一块,我还是踩了挺多坑,费了挺多精力的。这次我将我踩坑,适配各机型总结出来的史上最完美的Android沉浸式状态导航栏攻略分享给大家,大家也可以去 高能链官网 下载体验一下我们的App,实际感受一下沉浸式状态导航栏的效果(登录,实名等账号相关页面由于不是我开发的,...

Android技术之家 1891

微信小程序:errno: 600001, errMsg: “uploadFile:fail errcode:-101 cronet_error_code:-10001 error_msg:net::E

微信小程序报错uploadFile:fail errcode:-101 cronet_error_code:-10001 error_msg:net::ERR_CONNECTION_RESET, custum ip is invalid, didn't find user's ip,wx.uploadFile errno: 600001 errcode:-101 ?微信小程序wx.uploadFile错误,wx.uploadFile 在真机上报下面的错误,调试工具里没有问题,其它接口在真机/调试工具都正常,

✅ 精选推荐文章 4257

Holt-Winters方法预测水电发电量

Holt-Winters 模型, ARMIA,ACF检验 ,Dickey-Fuller 检测,白噪声检测,差分

firefox_yau的博客 1270

android沉浸式状态栏、fitsSystemWindows、标题栏折叠

现在大部分android手机都是android4.4以上,都支持开发者可以自定义状态栏色值,原来的黑底白字时代已过去。在android5.0上我们还可以自定义状态栏文字色值,让其显示深色字体。一、沉浸式状态栏的实现实现沉浸式状态栏效果,一般有两种方式:1、设置系统主题,在styles.xml中设置,在相应需要实现的界面里设置其android:theme主题。需要根据不同机器版本设置多个styles.

smileiam的专栏 3万+

YOLO26优化:AAAI2026 | 融合PartialNet Block的C3k2-YOLO高效目标检测网络 | 轻量化涨点设计

PartialNet Block 结合YOLO26的C3k2模块,进行二次创新。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 592

Android沉浸式模式实现导航栏与状态栏的隐藏,上滑呼出导航栏与状态栏

Android沉浸式状态栏被官方又称作沉浸式模式。 当启用该模式,应用程序的界面将占据整个屏幕,自动隐藏系统的状态栏和导航栏,让应用程序内容可以在最大显示范围呈现,增加大屏体验,而当需要查看通知的时候只需要从顶部向下滑动就能呼出通知栏。

Allisonton的博客 4592

Docker(八):Docker Compose(容器编排) 管理多容器应用—实战案例演示

🟢 Docker(八):Docker Compose(容器编排) 管理多容器应用—实战案例演示

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 6万+

XCP详解「3.1·ASAP2新建A2L文件」

后面是ASAP2新建A2L的操作步骤,如果是APE中新建的A2L就无需以下操作,APE只需要导入现成的A2L即可。退出点击保存时会提示保存A2L文件,是因为前面导出的是1.70版本,工程最低1.71,可以另外起个名字即可。导入elf文件,elf路径建议直接索引编译生成的Debug下的,防止编译后忘记更新。导出V1.70格式A2L文件,APE17支持V1.70。通过ASAP2生成需要A2L文件更常用些。同一个信号可以创建不同属性量。ASAP2中新建A2L文件。设置标定信号数量最大值。XCP详解「总目录」

光明磊学习&积累的地方 3059

【Android】解决修改状态栏颜色不生效的问题(6.0以上)

原创,转载请注明出处

Kirin blog 6361

⭐️VMwareWorkstation17.0虚拟机安装搭建Windows 7虚拟机(完整图文详细步骤含配置VMware Tools教程)

本教程为大家提供了从安装VMware Workstation 17.0开始,到在虚拟机上成功搭建Windows 7专业版系统的完整步骤。我们详细介绍了准备阶段所需的软件和硬件要求,以及在VMware中配置和安装Windows 7系统的每一步操作。此外,我们还特别提到了如何在虚拟机上配置VMware Tools,以便更好地与宿主机进行交互。 通过本教程的学习,读者不仅能够掌握在VMware Workstation 17.0上安装Windows 7虚拟机的技能,还能了解到如何配置虚拟机的硬件以及安装VMwar

Python老吕的博客 2万+

安卓沉浸式状态栏,android沉浸式状态栏工具类封装

文章目录前言二、使用步骤1.定义2.使用3.效果 前言 沉浸式状态栏对安卓6.0以上版本很简单,今天分享一个封装好的工具,供大家参考 二、使用步骤 1.定义 代码如下: package com.example.mystudy_kotlin.utils import android.app.Activity import android.graphics.Color import android.os.Build import android.view.View import android.view.

金福林的博客 1911

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Qt实现安卓沉浸式状态栏

Qt实现安卓沉浸式状态栏Qt实现安卓沉浸式状态栏 Qt实现安卓沉浸式状态栏 笔者写写此篇文章的时候,Qt已经发布了Qt 6版本,相比Qt 5版本有很大改变。所以此篇文章基于Qt 6.2而写。沉浸式状态栏的具体的实现过程,笔者参考了Qt android 设置系统状态栏为全透明,半透明、全屏,设置状态栏颜色,修改程序图标这篇文章,这篇里面写的很详细了,这篇文章的作者使用的是Qt 5,笔者这里主要写与Qt 6的不同,顺便简化一下过程。 首先需要一个.java文件,使用Qt就可以新建一个.java文件,复制以下内容

sdustzk的博客 3100

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

安卓沉浸式状态栏

安卓沉浸式状态栏前言安卓版本Android4.4之前Android4.4(API 19) - Android 5.0(API 21)1.图片沉浸1.1 xml实现1.2代码实现2.ToolBar沉浸2.1xml实现2.1.1 设置 fitsSystemWindows 属性2.1.2 布局里添加占位状态栏2.2代码实现2.2.1 代码设置fitsSystemWindows 属性2.2.2 布局里添加...

qq_41775852的博客 2512

Android 最简单的安卓沉浸式状态栏实现 Java

沉浸式状态栏介绍 沉浸式状态栏式Android 4.4 引入的一个机制,可以将手机顶端的状态栏颜色融入当前app的界面中,而不至于和app的界面以及配色有着明显的割裂。 在如今手机全面屏化的促进下,并且由于安卓手机的碎片化各家的状态栏背景颜色可能还不一定一致。在不进行沉浸式状态栏适配的app在大屏占比的手机上就会显得异常突兀,下面我就介绍一种最快速方便的将当前app和顶部状态栏实现沉浸式体验的方法。 沉浸式状态栏实现 首先需要明确使用下面的方法需要安卓4.4 KITKAT以上的系统,具体实现仅仅需要两步

weixin_45751409的博客 1058

安卓android一种沉浸式状态栏和导航栏并可设置渐变和图片的方法

网络上流传的状态栏导航栏沉浸的方式有很多,但是在我使用的时候都失效了,在官网也没找到合适的例子达到期望,根据情况判断是由于目前版本过新和系统有关系。 也许是自己太菜的缘故。 然后就后面自己摸索出来的一种方式,在亲身使用有效后在这里记录一下。

一二说 2055

Android 安卓状态栏工具类(沉浸式、字体颜色等)

设置MIUI6+的状态栏是否为darkMode,darkMode时候字体颜色及icon变黑。设置Flyme4+的darkMode,darkMode时候字体颜色及icon变黑。

2401_89173779的博客 1523

Android沉浸式状态栏,看完这篇就够了!

参考以下文章 Android关于沉浸式状态栏总结 Android适配—沉浸式状态栏 Android App 沉浸式状态栏解决方案 Android 沉浸式解析和轮子使用 Android沉浸式(透明)状态栏适配 Android状态栏微技巧,带你真正理解沉浸式模式 android沉浸式状态栏封装—教你玩出新花样 ImmersionBar – android 4.4以上沉浸式实现 ...

ruanyandong的博客 4万+

android 9.0去掉状态栏,安卓9.0沉浸式状态栏

首先我们来了解一下几个设置沉浸式状态栏的基础属性:1.View.SYSTEM_UI_FLAG_LOW_PROFILE:低调模式, 会隐藏不重要的状态栏图标;2.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION:隐藏导航栏;3.View.SYSTEM_UI_FLAG_FULLSCREEN:状态栏隐藏(高度不变);4.View.SYSTEM_UI_FLAG_LAYOUT_STAB...

weixin_42298128的博客 1460

android实现沉浸式状态栏

1、工程的build.gradle中加入依赖 implementation 'com.github.crossoverone:StatusBarUtil:1.3.3' 2、项目的build.gradle中加入 allprojects { repositories { google() jcenter() maven { url 'https...

weixin_43117800的博客 408

Android 安卓状态栏工具类(沉浸式、字体颜色等)(1)

我这些话比较直接,可能会戳到一些人的玻璃心,但是我知道肯定会对一些人起到点醒的效果的。那么我做的这些就都有了意义。我这些话比较直接,可能会戳到一些人的玻璃心,但是我知道肯定会对一些人起到点醒的效果的。就因为你只需补充你自己认为需要的,但并不知道企业需要的。因为你的技术体系并不系统,是零碎的,散乱的。就因为你只需补充你自己认为需要的,但并不知道企业需要的。因为你的技术体系并不系统,是零碎的,散乱的。而现在随着跨平台开发,混合式开发,前端开发之类的热门,Android开发者需要学习和掌握的技术也在不断的增加。

2401_84123213的博客 1059

Android 实现沉浸式状态栏

文章转载自 原文:点击访问 现在越来越多的软件都开始使用沉浸式状态栏了,下面总结一下沉浸式状态栏的两种使用方法 注意!沉浸式状态栏只支持安卓4.4及以上的版本状态栏:4.4上是渐变色,5.0上是完全透明,本文模拟器为4.4演示 效果图: 注意!两种方法的区别:第一种:为顶部栏跟随当前activity的布局文件的背景的颜色,使用方便,不过也有点问题就是,如果有底部虚拟导航键

zhangkaidsy的博客 2163
上一篇: pmd代码检测规则修改
下一篇: 复利计算器
丸子哒哒哒
博客等级 码龄12年 31粉丝 50原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值