参考了一些文章做了一些修改,变成了自己的工具类。其中有很多地方欠考虑,有待改进,欢迎路过的大佬给点建议。
经过前两篇的介绍我们对如何修改状态栏的效果有了大致的了解,本篇介绍一种使用更加简单的方式,可以先拉到最后查看效果图。
设置主题效果
注意: 要设置fitsSystemWindows为true
1 | <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> |
参考SystemBarTint对状态栏的改变方式,添加下面这个类方法,用来设置 API 19 以上的状态栏效果
我们的界面绘制时在DecorView中的,这个类的核心思想就是:
1.获取DecorView
2.绘制状态栏高度的View
3.将view添加到DecorView中
所以我们对状态栏的操作,其实就是对view的操作。在这个类中默认view不显示,改变状态栏的效果时,要调用
1 | setStatusBarTintEnabled(true) |
注意:使用这个方法的前提是 状态栏是透明的,因为进行了相关的判断(可以自行修改)
1 | public class SystemBarTintManager { |
工具类代码
在这段代码中当我们的API 为4.4.+ 但是小于 5.0时使用上述的类
1 | /** |
完整代码
1 | import android.annotation.TargetApi; |
通用方法为
1 | 设置字体颜色为黑色 |
使用方式
1 | public class MainActivity extends AppCompatActivity { |
第二个参数是设置是否为黑色字体。
我们还可以调用下面代码设置状态栏颜色。
1 | StatusBarUtil.setStatusBarColor(Activity activity, int colorId) |
效果
使用时只需要一行代码就可以改变状态栏的字体颜色,是不是很简单呢。
请在github上下载完整的内容,工具类在statusbarutil中。