android44状态栏颜色
① android 怎么设置状态栏字体颜色
通过Style来修改状态栏颜色。
1.设置 colorPrimary,colorPrimaryDark两个颜色。
<stylename="AppTheme"parent="Theme.AppCompat.Light.NoActionBar">
<itemname="colorPrimary">@android:color/holo_blue_bright</item>
<itemname="colorPrimaryDark">@android:color/holo_blue_bright</item>
</style>
2. AndroidManifest.xml文件中的targetSdkVersion必须设置在21以上。
3.parent主题必须是Theme.AppCompat开头,兼容包下的主题,所以必须一用v7包。
colorPrimary,colorPrimaryDark这两个属性是Material Design风格中规定的。具体位置如下图所示:
② Android设置状态栏颜色和状态栏文字、图标颜色
Android开发中,经常需要实现下图状态栏的效果,类似于沉浸式状态栏,但这里仅仅是讨论设置状态栏的颜色和状态栏上面文字、图标的颜色的方法。
Android 4.4(API 19)之后,就提供了修改状态栏颜色的方法,但是在 Android 6.0(API 23)之后,才支持修改状态栏上面的文字和图标颜色,默认是白色的。所以会导致一个问题,在 4.4 到 6.0 之间的系统,状态栏设置为浅色的话,状态栏上面白色的文字和图标会看不清,像下面这样:
有一些第三方的系统提供了设置状态栏和状态栏文字、图标颜色的方法,比如小米的MIUI和魅族的Flyme,所以考虑了下比较好的实现方式是:
当然,这里面也会有坑,比如 MIUI 提供的修改状态栏字体颜色方法会跟 Android 系统自带的方法冲突,官方说明如下: 关于MIUI状态栏字符颜色逻辑调整说明
经过网上的资料和自己的尝试,MIUI 系统还是同时使用 MIUI 提供的方法和 Android 系统自带的方法来修改状态栏字体颜色比较保险。
基于上面的思考,封装了设置 Android 4.4 以上系统状态栏颜色和状态栏字体、图标颜色的方法:
要在 Application Theme 加上 <item name="android:fitsSystemWindows">true</item> ,不然页面会顶到状态栏上面,或者在 Activity 的布局里面加上 android:fitsSystemWindows="true" 和 android:clipToPadding="false" 也可以。
最终实现的效果如下:
大家有更好的方案可以告诉我~
③ android导航栏与状态栏颜色及透明度
首先创建一个空项目,如下图
可以看到状态栏是白字黑背景, 导航栏也是白图标黑背景
嘿嘿, 我们先把状态栏隐藏掉,在添加一个ImageView, 让ImageView做背景(方便查看)
样子如下:
将状态栏和导航栏设置透明, 找到 Manifest.xml 文件, 在主题样式中修改
android:statusBarColor 设置状态栏背景色
android:navigationBarColor 同上
android:windowLightStatusBar 设置状态栏文字色, true为深色, false为白色
android:windowLightNavigationBar 同上
android:windowTranslucentStatus 设置状态栏半透明状态, true为半透明, false为不透明
android:windowTranslucentNavigation 同上
最后两个半透明状态下面没用, 可自己尝试看效果
效果图如下:
可以看到导航栏与状态栏并没有透明,原因是默认不能占用状态栏空间与导航栏空间,根布局背景为白色,所有这里显示白色
可以通过设置 getWindow().getDecorView().setSystemUiVisibility() 来适配
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 适配状态栏空间
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 适配导航栏空间
效果如下:
④ android状态栏颜色修改
Activity activity = getActivity();
Window window = activity ==null ?null : activity.getWindow();
if (window !=null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
window.setStatusBarColor(getResources().getColor(R.color.statusbarcolor, null));
int visibility = window.getDecorView().getSystemUiVisibility();
visibility = visibility|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
window.getDecorView().setSystemUiVisibility(visibility);
}
设置状态栏为沉浸式模式
Window window = getWindow();
if (window !=null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
window.setStatusBarColor(Color.TRANSPARENT); }
}
设置状态栏为非沉浸式模式并设置颜色
Window window = getWindow();
if (window !=null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
window.setStatusBarColor(getResources().getColor(R.color.status_color));
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}
⑤ 求助大神,android怎样设置改变一个tab页面的背景以及每一个栏字体的颜色
android4.4以下修改状态栏颜色的方法为:1、首先会懂得反编译,电脑上要安装java环境和反编译工具。没有的网络搜索下载安装。这里就不多说了。2、要准备一个framework-res.apk放在一边待用,把framework-res.apk复制到反编译工具里、反编译framework-res.apk后打开res\values\styles.xml。3、直接搜索以下代码你会看见14.0spnormal?textColorPrimary然后修改这一段代码?textColorPrimary为#ff000000000000为颜色代码想要什么颜色就修改成自己喜欢的颜色就可以了颜色对照表可以参考/tools/sejie.asp4、然后回编译。回编译完成后用电脑上的压缩软件打开回编译好的framework-res.apk,拖出里面的resources.arsc替换进事先准备好的framework-res.apk里就可以了。然后用复制到内存卡用RE复制或者移动到system里修改权限310,在移动到framework里覆盖就可以了。关机重启,状态栏的通知内容颜色也变了。
⑥ Android如何设置顶部状态栏颜色(主题)
在Android中我们经常需要设置屏幕顶部状态栏的主题和应用页面保持同一风格,本文介绍几种常用的设置方案:
首先给出一张图:
2 2通过上图,我们可以通过设置不同的属性来达到控制不同位置颜色的目的,下面给出使用示例,修改res/values-19里面的内容:
主要是设置 colorPrimary,colorPrimaryDark这两个属性的值来设置状态栏的颜色,需要注意的是:
1:AndroidManifest.xml文件中的targetSdkVersion必须设置在 21 以上。
2.parent主题必须是 Theme.AppCompat 开头,兼容包下的主题,所以必须一用 v7 包。
在顶部标题栏设置属性值达到风格一致的目的
首先修改res/values-v19文件夹下的styles.xml文件内容如下(如果没有可以新建一个):
然后设置顶部标题控件的两个属性:
这时状态栏会保持与设置fitsSystemWindow属性的控件的背景颜色一致。
⑦ Android状态栏着色(非沉浸式状态栏)
由于产品需求 , 要将一级页面的5个Fragment设置不一样颜色的状态栏; 然后我对着网上的博文抄了一遍 ,发现兼容问题很差 , 要么就是顶部的状态栏没有实现全屏 , 要么就是底部的虚拟按钮遮挡导航栏(华为手机和小米手机), 最后自定义主题和设置xml布局顶部高度来解决了这个问题;
解决方案:
第一步.在values的styles中自定义主题:
第二步.创建values-v19文件夹和styles.xml:
第三步.创建values-v21文件夹和styles.xml:
第三步.引用主题:
第四步.Fragment 状态栏填充颜色:(如果一节界面的头部是轮播图直接预留20dp的高度)
不设置预留高度,状态栏会和toolbar叠加在一起 (状态栏在toolbar上方)
运行后效果图如下:
轮播图在顶部的时候直接预留状态栏的高度即可:
指定颜色的界面设置多一层有颜色的View:
⑧ Android状态栏字体颜色怎么改变
android4.4 以下修改状态栏颜色的方法为:
1、首先会懂得反编译,电脑上要安装java环境和反编译工具。没有的网络搜索下载安装。这里就不多说了。
2、要准备一个framework-res.apk放在一边待用,把framework-res.apk复制到反编译工具里、反编译framework-res.apk后打开res\values\styles.xml。
3、直接搜索以下代码
<style name="TextAppearance.StatusBar" parent="@style/TextAppearance">
你会看见<style name="TextAppearance.StatusBar" parent="@style/TextAppearance">
<item name="textSize">14.0sp</item>
<item name="textStyle">normal</item>
<item name="textColor">?textColorPrimary</item>
</style> 然后修改这一段代码<item name="textColor">?textColorPrimary</item> 为 <item name="textColor">#ff000000</item>
000000为颜色代码 想要什么颜色就修改成自己喜欢的颜色就可以了 颜色对照表可以参考 http://www.59178.com/tools/sejie.asp
4、然后回编译。回编译完成后用电脑上的压缩软件打开回编译好的framework-res.apk,拖出里面的resources.arsc替换进事先准备好的framework-res.apk里就可以了。然后用复制到内存卡 用RE复制或者移动到system里 修改权限 3 1 0,在移动到framework里覆盖就可以了。关机重启,状态栏的通知内容颜色也变了。