您的位置:首页 > 移动开发 > Android开发

Android 实现沉浸式状态栏效果(systembartint库)

2016-06-22 15:19 435 查看
本人最近做一个项目需要做到一个沉浸式状态栏效果找了很多资料,最后如愿以偿.

先附上效果图:



实现的步骤主要有以下几点(开发平台是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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: