羊皮书APP(Android版)开发系列(七)Android沉浸通知栏
来源:互联网 发布:阳西县网络问政首页 编辑:程序博客网 时间:2024/05/16 13:05
- Android沉浸通知栏,有一个开源库SystemBarTint,效果如下:
- 使用方法:在Activity中添加相关代码,Demo如下:
public class MatchActionBarActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_match_actionbar); 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);//通知栏所需颜色 } @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); } }
- 在APP中使用的时候,我们不要在每个Activity中都重复写这么一段代码,而是要自己定义一个基础的抽象Activity类,用于其他Activity继承,减少代码重复。这里给出我定义的一个基础抽象Activity类BaseActivity.java,代码如下:
package cn.studyou.parchment.activity;import android.annotation.TargetApi;import android.os.Build;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.Window;import android.view.WindowManager;import com.readystatesoftware.systembartint.SystemBarTintManager;import cn.studyou.parchment.R;/** * 基本功能:基础Activity类 * 创建:王杰 * 创建时间:16/3/9 * 邮箱:w489657152@gmail.com */public abstract class BaseActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); } SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.green);//通知栏所需颜色 } @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); }}
- 然后每个Activity中继承BaseActivity即可,如下:
package cn.studyou.parchment.activity;import android.os.Bundle;import cn.studyou.parchment.R;public class MainActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }}
- 最后一步,要在布局文件中添加如下代码:
android:clipToPadding="false"
- 添加后的布局文件代码形式如下:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/green" android:fitsSystemWindows="true" android:clipToPadding="false" > <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="登录" android:textSize="@dimen/normal"/></RelativeLayout>
- 原文地址:http://blog.csdn.net/wjwj1203/article/details/50867856
- 我的github地址:https://github.com/wjie2014
- 我的博客地址:http://blog.studyou.cn/
- 我的CSDN博客地址:http://blog.csdn.net/wjwj1203
- 我的Gmail邮箱:w489657152@gmail.com
0 0
- 羊皮书APP(Android版)开发系列(七)Android沉浸通知栏
- 羊皮书APP(Android版)开发系列(十)Android开发常用工具类
- 羊皮书APP(Android版)开发系列(三)APP引导页启动控制
- 羊皮书APP(Android版)开发系列(五)APP引导页实现
- 羊皮书APP(Android版)开发系列(十二)Android Socket UDP大文件传输
- 羊皮书APP(Android版)开发系列(十三)Android 邮件发送的实现
- 羊皮书APP(Android版)开发系列(一)Icon图片生成神器
- 羊皮书APP (Android版)开发系列(二)日志工具类
- 羊皮书APP(Android版)开发系列(四)全屏幕延迟启动
- 羊皮书APP(Android版)开发系列(六)几个工具的选取
- 羊皮书APP(Android版)开发系列(八)用户登录
- 羊皮书APP(Android版)开发系列(九)通过Wifi调试程序
- 羊皮书APP(Android版)开发系列(十一)客户端与服务器端时间校准
- Android开发之通知栏设置(全屏模式、沉浸模式、变色龙模式)
- Android Translucent System Bar 开发详解-实现沉浸式通知栏(通知栏与导航栏颜色相同)
- Android沉浸式通知栏
- Android沉浸式通知栏
- Android沉浸式通知栏
- R语言·文本挖掘︱Rwordseg/rJava两包的安装(安到吐血)
- 625A.Guest From the Past
- IOS调试—断点调试
- 关于android任务Task及回收栈back stack介绍
- 今天误用append函数,多亏py民工指点,pythone3.3,20160312,
- 羊皮书APP(Android版)开发系列(七)Android沉浸通知栏
- 完全卸载oracle11g步骤
- LeetCode 141. Linked List Cycle
- JavaScript的面向对象
- HDU 5640 King's Cake [模拟]
- ATL库组件
- HDU 5640 King's Cake
- apache 环境的搭建
- Ruby边学边记