Android状态栏透明方法,与工具栏颜色一致
16lz
2021-01-26
Android状态栏透明方法,与工具栏颜色一致,这一功能是从Android4.4开始的。
下面记录下透明方法,开发工具AndroidStudio2.3
方式一:在values-v19中添加styles.xml
1.首先要在资源目录中建立一个values-v19目录,该目录中建立styles.xml文件
文件内容,这是最新方法。
<?xml version="1.0" encoding="utf-8"?>
注意:几个color开头的项目是主题颜色设置部分,可以不理会,实现透明功能的是最后两项。
2.然后在Java**代码中**找到你想进行状态栏透明的页面,我的页面是继承自AppCompatActivity类
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // 设置透明状态栏 supportRequestWindowFeature(Window.FEATURE_NO_TITLE); ViewGroup contentFrameLayout = (ViewGroup) findViewById(Window.ID_ANDROID_CONTENT); if (contentFrameLayout != null) { View parentView = contentFrameLayout.getChildAt(0); if (parentView != null && Build.VERSION.SDK_INT >= 14) { parentView.setFitsSystemWindows(true); } } setContentView(R.layout.activity_main); }
重写onCreate方法,先进行 透明栏设置 —> 再设置View,顺序很重要
到这里运行项目其实就已经透明化状态栏了,状态栏的颜色与页面的工具栏颜色一致了,但是会发现整个页面是上移的
我这里一个有一个方法:是设置Padding Top这个高度不就OK了。
3.在布局中的属性
android:clipToPadding 作用:定义布局间是否有间距
android:fitsSystemWindows=”true” 作用:意思就是设置应用布局时是否考虑系统窗口布局;如果为true,将调整系统窗口布局以适应你自定义的布局。
android:clipToPadding="true"android:fitsSystemWindows="true"
方式二:修改values的Style
1.设置 colorPrimary,colorPrimaryDark两个颜色。
"AppTheme"parent="Theme.AppCompat.Light.NoActionBar"> "colorPrimary">@android:color/holo_blue_bright "colorPrimaryDark">@android:color/holo_blue_bright</style>
2.AndroidManifest.xml文件中的targetSdkVersion必须设置在21以上。
3.parent主题必须是Theme.AppCompat开头,兼容包下的主题,所以必须一用v7包。
colorPrimary,colorPrimaryDark这两个属性是Material Design风格中规定的。具体位置如下图所示:
更多相关文章
- AndroidManifest.xml中android:label标签的使用
- Android中的搜索框(SearchView)的功能和用法
- 【Android】TabLayout 自定义指示器 Indicator 样式
- Android(安卓)开发之 RecyclerView Adapter 模板
- Android录音应用实例教程
- 10天学通Android开发(4)-用户布局与常用控件
- Android(安卓)UI开发篇之 ViewPager+九宫格布局 实现左右滑动
- android 倒计时的控件,以动画的形式平滑的完成数字的过度
- Android(安卓)ApiDemos示例解析(77):Graphics->RoundRects