Android 实现沉浸式状态栏效果(systembartint库)
2016-06-22 15:19
435 查看
本人最近做一个项目需要做到一个沉浸式状态栏效果找了很多资料,最后如愿以偿.
先附上效果图:
实现的步骤主要有以下几点(开发平台是android studio):
1.设置app全屏:
方法:在AndroidManifest.xml中设置
先附上效果图:
实现的步骤主要有以下几点(开发平台是android studio):
1.设置app全屏:
方法:在AndroidManifest.xml中设置
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@android:style/Theme.Light.NoTitleBar" > </application>2.在app中的build.gradle中引入systembartint库(如果是eclipse开发的可以去网上下载库)
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.readystatesoftware.systembartint:systembartint:1.0.3' }3.因为我们项目中很多地方都用到这个沉浸式状态栏,所以我们可以先写一个基类BaseActivity,然后其它Activity都继承它就ok了!
import android.annotation.TargetApi; import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; import com.readystatesoftware.systembartint.SystemBarTintManager; /** * Created by shaolin on 6/22/16. */ public class BaseActivity extends Activity { private SystemBarTintManager mTintManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initSystemBar(this); } public void initSystemBar(Activity activity) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(activity, true); } mTintManager = new SystemBarTintManager(activity); mTintManager.setStatusBarTintEnabled(true);// 使用颜色资源 mTintManager.setStatusBarTintResource(R.color.theme_color);//设置状态栏的颜色 SystemBarTintManager.SystemBarConfig config = mTintManager.getConfig(); this.getWindow().getDecorView().findViewById(android.R.id.content). setPadding(0, config.getPixelInsetTop(false), config.getPixelInsetRight(), config.getPixelInsetBottom()); } //透明状态栏 @TargetApi(19) private static void setTranslucentStatus(Activity activity, boolean on) { Window win = activity.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); } }
相关文章推荐
- Android SQLite分页查询的三种方法
- Android retrofit 日志拦截器
- Android应用的目录组织结构,每个文件夹及文件的用途?
- Android中应用程序如何获得系统签名权限
- android 6.0 动态权限处理
- Android 冷知识(1)开机广播及一些特殊广播
- Android 自定义实现switch开关按钮
- Android_个人中心_修改个人信息
- Android Fragment 你应该知道的一切
- android 软键盘设置
- Android Fragment 真正的完全解析(下)
- Android 平台下使用 i2c-tools
- android View机制深入剖析
- Android Fragment 真正的完全解析(上)
- Android Intent调用大全、系统自带Intent调用大全
- 【Android开源项目分析】android轻量级开源缓存框架——ASimpleCache(ACache)源码分析
- 实现PHP服务器+Android客户端(Retrofit+RxJava)第五天学一学ndk开发吧
- Android图片上传(头像裁切+原图原样)
- Android 多线程详细用法
- Android AndroidStudio MAT LeakCanary 内存分析之 初识内存泄漏