百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Android学习改变状态栏的颜色使其与APP风格一体化

suiw9 2025-04-06 20:50 5 浏览 0 评论

导语:沉浸式状态栏,改变状态栏的颜色使之与APP风格一体化是不是感觉很漂亮,很美?其实实现这种效果并不难,google在4.4及以下提供了相关的方法。我相信大家肯定看到过很多软件有沉浸式状态栏,在运行该App时改变了手机屏幕顶部状态栏的颜色,使他们的风格非常的统一,看起来异常的漂亮和清爽。想不想实现这种效果呢,其实在Android KITKAT上有一个新的特性可以设置手机状态栏的背景,让手机整个界面的风格保持一致,看起来非常清爽统一。当然这种效果只支持在API 19及以上使用沉浸式状态。4.4系统以上的是看不到这种效果的。

效果图

方法实现1添加布局属性

首先要在布局文件中加入下面两个属性:

android:clipToPadding="true"

android:fitsSystemWindows="true"

解释一下上面两个布局属性的意思:

android:clipToPadding 定义布局间是否有间距

android:fitsSystemWindows="true" 意思就是设置应用布局时是否考虑系统窗口布局;如果为true,将调整系统窗口布局以适应你自定义的布局。比如系统有状态栏,应用也有状态栏时。看你这个布局代码,恰恰是在定义标题栏样式,所以用到这行代码了。

2在Activity中应用一下方法

public static void initSystemBar(Activity activity) {

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

setTranslucentStatus(activity, true);

}

SystemBarTintManager tintManager = new SystemBarTintManager(activity);

tintManager.setStatusBarTintEnabled(true);

// 使用颜色资源

tintManager.setStatusBarTintResource(R.color.status_color);

}

@TargetApi(19)

private static void setTranslucentStatus(Activity activity, boolean on) {

Window win = activity.getWindow();

WindowManager.LayoutParams winParams = win.getAttributes();

final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;

if (on) {

winParams.flags |= bits;

} else {

winParams.flags &= ~bits;

}

win.setAttributes(winParams);

}

3SystemBarTintManager 的使用

SystemBarTintManager 是状态栏的管理实例,没有它是不行的,它的开源地址是:
https://github.com/hexiaochun/SystemBarTint ,已经封装的非常好了,我们只需要把它下载下来,应用到你的App中即可。

到这里就介绍完了,是不是很简单,赶紧去试试吧。

著名的移动互联网专家,自媒体人,运营的公众号“非著名程序员”,每天一篇原创技术分享和移动互联网知识分享,微信公众号:smart_android ,头条号和百度百家账号都是“非著名程序员”。

相关推荐

C和Java效率对比试验和编译器优化影响

首先得承认这不是一个好例子,逻辑过于简单,受环境的干扰也特别大。不能作为评价一门语言综合效率的用例,仅仅是基于个人兴趣的小实验的记录。C语言版本1#include...

Java 代码执行原理(java代码是如何执行的)

专注于Java领域优质技术,欢迎关注作者|Alan来源|cnblogs.com/wangjiming/p/10455993.html对于任何一门语言,要想达到精通的水平,研究它的执行原理(或者...

JVM底层原理之如何选用C1、C2编译器?它们有什么区别?

JVM底层原理之如何选用C1、C2编译器?它们有什么区别?关于JVM底层的C1、C2编译器,很多人不知道它的具体概念,本篇我们详细的讲解一下。...

阿里巴巴Java性能调优实战:深入JVM即时编译器JIT,优化Java编译

深入JVM即时编译器JIT,优化Java编译然而许多Java开发人员对JIT编译器的了解并不多,不深挖其工作原理,也不深究如何检测应用程序的即时编译情况,线上发生问题后很难做到从容应对。类编...

JPHP--一款基于JVM的新PHP编译器(php 编译)

JPHP是一款基于Java语言编写的PHP编译器以及新运行时库,支持多线程、unicode字符串(UTF-16)、GUI、Android开发以及嵌入式Web应用。JPHP可以将PHP源码编译成JVM字...

Java:开源Java编译器的下一个前沿——实时编译即服务

  对于Java开发人员来说,实时(JIT)编译器是提高性能的关键。然而,在容器世界中,由于CPU和内存消耗的限制,性能的提高经常被抵消。为了帮助解决这个问题,EclipseOpenJ9JVM提供...

45张图带你从入门到精通学习WireShark

你好,这里是网络技术联盟站。...

Linux(麒麟)下如果使用wireshark抓包工具

Linux(麒麟)下如果使用wireshark抓包工具一、安装wireshark1、通过命令将麒麟系统iso文件挂载到/mnt2、进入到/mnt/KYLIN3、通过yuminstall安装两个安装...

强烈推荐APP破解常用工具集合(破解软件推荐)

抓包...

wireshark长时间抓包分多个文件(wireshark 长时间抓包)

http://www.cnblogs.com/wangqiguo/p/5068602.html推荐理由一般使用wireshark不需要长时间抓包的,但是有时候遇到网络通信中非常棘手的问题,例如一个小...

wireshark抓包教程详解(wireshark抓包全集)

如果本文对你有帮助,欢迎关注、讨论、点赞、收藏、转发给朋友,让我有持续创作的动力,让我们一起相互学习共同进步。...

收藏!Wireshark最好用的抓包命令都在这了!

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友。在现在,网络流量的监控与分析变得尤为重要。无论是排查网络故障、优化性能还是确保网络安全,都需要精...

Wireshark快捷键大全,记住后抓包效率杠杠的

不管你是网络管理员、程序员还是安全工程师,Wireshark都是你的得力助手,用来排查问题、分析流量,甚至学习网络协议。...

渗透测试抓包工具-wireshark(渗透测试脚本)

wireshark功能介绍1.抓包嗅探协议分析2.安全专家必备的技能...

wireshark网络抓包详解(利用wireshark抓包工具抓取网络数据包)

一、简介...

取消回复欢迎 发表评论: