Android studio改变状态栏颜色,实现全局美感
来源:互联网 发布:反向传播算法 推导 编辑:程序博客网 时间:2024/06/05 23:39
搞了几天的杂事,终于晚上可以研究研究项目了。今天坐车回来的时候打开前几天做的一小点的应用看了下,发现最上面有一块蓝色的背景,之前只是实现了应用的功能就没在意这些细节,今天才注意到这种问题。我想了想,明明我设置了隐藏标题栏的代码,为啥还有一块没去掉呢?像下面这图
那么问题来了,既然标题栏可以去掉,那么状态栏可以吗?答案是肯定可以的。
android4.4版本之后(包含4.4),android的window(窗口)提供了新的属性,即:
WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS与
WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION
两个属性分别表示将状态栏设置为透明,将导航栏设置为透明状态。使用方法如下所示:protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initWindow();}
private void initWindow(){//初始化,将状态栏和标题栏设为透明 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }
状态栏虽然隐藏了,但是缺乏美感,这不是我们想要的结果,所以,只需要让其显示我们想要的颜色就可以了,在styles.xml文件的AppTheme下添加<item name="android:fitsSystemWindows">true</item>
状态栏虽然出来了,但不是我们想要的颜色,那么需要我们声明:private SystemBarTintManager tintManager;并在之前的initWindow()中加上以下代码:
tintManager = new SystemBarTintManager(this);
int statusColor=Color.parseColor("#FFFFFF"); tintManager.setStatusBarTintColor(getColor(statusColor)); tintManager.setStatusBarTintEnabled(true);
ok,这样问题就解决啦,看起来稍微好看点了。虽然看起来还是有点丑,后面我会找好看点的图标替换下那几个。
此文章仅作记录与参考,如有问题或者建议欢迎大家提出。
2 0
- Android studio改变状态栏颜色,实现全局美感
- android 状态栏颜色改变
- Android 改变状态栏颜色
- 改变android状态栏颜色
- android改变状态栏颜色
- 改变android状态栏颜色
- 改变Android状态栏字体颜色和实现沉浸式状态栏
- Android实现透明状态栏方法以及改变状态栏文字颜色
- android 状态栏颜色的改变
- [Android]改变状态栏的颜色
- 改变Android状态栏的颜色
- android-改变状态栏字体颜色
- Android 状态栏(SystemBar)颜色改变
- Android App 改变状态栏颜色
- Android 非常简单的实现 Fragment状态栏一体化布局,状态栏字体的颜色改变,
- Android改变状态栏颜色导航不变
- Android 改变顶部状态栏的颜色
- Android开发改变状态栏的颜色
- java.lang.StackOverflowError
- 转载 STM32的bootloader IAP编程
- iOS动画——流光文字
- 欢迎使用CSDN-markdown编辑器
- 欢迎使用CSDN-markdown编辑器
- Android studio改变状态栏颜色,实现全局美感
- 移植JAVA WEB应用到gradle+cargo问题总结 win8.1q
- MySQL
- MySQL
- 263.Ugly Number||202 happy number||476 Number Complement||136 Single Number
- Java过滤器和监听器详解
- 修改——买铅笔
- 基础练习 特殊的数字
- Intel 奔腾的芯