android沉浸式状态栏实现细节
2015-07-30 18:39
716 查看
studio,中引入沉浸式兼容库
compile ‘com.readystatesoftware.systembartint:systembartint:1.0.3’
eclipse,可以导入相应的那个类。
第一类,兼容actionbar
第一步:设置activity主题android:theme=”@style/ActionBarTheme”
第二步:设置状态栏透明,然后设置状态栏沉浸的颜色
第三步:设置适应windows,在布局文件设置
android:fitsSystemWindows=”true”
如果不设置,应用的ui会顶上去,顶进system ui
ok
第二类 没有actionbar的activity
第一步,设置主题,android:theme=”@style/FullBleedTheme”
或者
用toolbar只能设置Theme.AppCompat.NoActionBar主题
第二步:同上一个第二步。
设置状态栏透明+颜色
第三步:
android:fitsSystemWindows=”true”
android:clipToPadding=”false”
compile ‘com.readystatesoftware.systembartint:systembartint:1.0.3’
eclipse,可以导入相应的那个类。
第一类,兼容actionbar
第一步:设置activity主题android:theme=”@style/ActionBarTheme”
[code]<style name="ActionBarTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- API 14 theme customizations can go here. --> <item name="android:actionBarStyle">@style/ActionBarStyle</item> </style> <style name="ActionBarStyle" parent="android:Widget.Holo.Light.ActionBar.Solid.Inverse"> <item name="android:background">@color/actionbar_bg</item> </style>
第二步:设置状态栏透明,然后设置状态栏沉浸的颜色
[code]@TargetApi(19) private void setTranslucentStatus(boolean on) { Window win = 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); }
[code]@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); } SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); //设置沉浸的颜色 tintManager.setStatusBarTintResource(R.color.statusbar_bg);}
第三步:设置适应windows,在布局文件设置
android:fitsSystemWindows=”true”
如果不设置,应用的ui会顶上去,顶进system ui
ok
第二类 没有actionbar的activity
第一步,设置主题,android:theme=”@style/FullBleedTheme”
[code]<style name="FullBleedTheme" parent="android:Theme.Holo.Light.NoActionBar"> <!-- API 14 theme customizations can go here. --> </style>
[code]<style name="FullBleedTheme" parent="android:Theme.Holo.Light.NoActionBar.TranslucentDecor"> <!-- API 19 theme customizations can go here. --> </style>
或者
用toolbar只能设置Theme.AppCompat.NoActionBar主题
[code] <style name="AppThemeToolbar" parent="Theme.AppCompat.NoActionBar"> <item name="colorPrimary">#2196F3</item> <item name="colorPrimaryDark">#2196F3</item> <!--<item name="colorPrimaryDark">#1565C0</item>--> <item name="colorAccent">#E91E63</item> </style>
第二步:同上一个第二步。
设置状态栏透明+颜色
[code]mTintManager = new SystemBarTintManager(this); mTintManager.setStatusBarTintEnabled(true); mTintManager.setNavigationBarTintEnabled(true); mTintManager.setStatusBarTintResource(R.color.statusbar_bg);
第三步:
android:fitsSystemWindows=”true”
android:clipToPadding=”false”
相关文章推荐
- android Json解析
- AndroidStudio界面出现乱码
- Android 使用javaMail jar包 发送邮件
- android 进程/线程管理(一)----消息机制的框架
- 一个简单的Android图片处理Demo
- Android工程项目没有错却出现红叉—解决办法
- Android studio使用的小问题,小技巧总结----持续更新中
- Android 5.0学习之使用Palette
- Android字体属性Paint.FontMetrics
- 使用Android Studio 1.3 版本进行NDK开发
- 当启动多个Activity后从最后一个activiy越级返回方法
- 分析android动画模块
- Android 日志级别总结
- Android中loader的学习:
- com.android.dex.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice
- Android启动过程学习总结
- Android禁止ViewPager的左右滑动
- xml布局内容总结(三)--Android
- Android重启应用程序代码
- Android中读图片Exif信息的方法