今天产品来看进度,说ios状态栏可以改颜色,以前竟然也没注意过,看了美团 ,扣扣的实现, 才注意到。着手开始做。网上借鉴了点 ,各种乱,整理了下 。希望可以帮到大家 。
【转载请标明出处】
前提: 效果在4.4及之上版本 5.0据说不一样 待补充
Mi3 4.4版本 完美实现 , 其他版本待测
效果图如下:
aaarticlea/png;base64,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" alt="" width="431" height="218" />
步骤如下:
1.第一步:
效果使用的是第三方开源库 SystemBarTint 有兴趣可以去了解。 本文只用到核心类 SystemBarTintManager 黏贴到项目即可 代码太多 贴在本文最后。先去复制
2.第二步:
在Activity中实现如下代码:
public class MainActivity extends Activity { //需要导入的第三方内的核心类。本文最后会贴出
private SystemBarTintManager tintManager; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initWindow();
} @TargetApi(19)
private void initWindow() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintColor(this.getResources().getColor(R.color.blue)); //设置状态栏的颜色
tintManager.setStatusBarTintEnabled(true);
}
}
}
3.第三步:
在最外层布局中添加两行代码
android:clipToPadding="true"
android:fitsSystemWindows="true"
具体布局如下:
<?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:clipToPadding="true"
android:fitsSystemWindows="true"
> <TextView
android:background="@color/blue"
android:layout_width="match_parent"
android:layout_height="50dp"
android:text="Android沉浸式测试" />
</RelativeLayout>
三步 完成!!!
这里这里。。。 SystemBarTintManager 代码 复制到工程即可
import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.DisplayMetrics;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.FrameLayout.LayoutParams; import java.lang.reflect.Method; /**
* Class to manage status and navigation bar tint effects when using KitKat
* translucent system UI modes.
*
*/
public class SystemBarTintManager { static {
// Android allows a system property to override the presence of the navigation bar.
// Used by the emulator.
// See https://github.com/android/platform_frameworks_base/blob/master/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java#L1076
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
try {
Class c = Class.forName("android.os.SystemProperties");
Method m = c.getDeclaredMethod("get", String.class);
m.setAccessible(true);
sNavBarOverride = (String) m.invoke(null, "qemu.hw.mainkeys");
} catch (Throwable e) {
sNavBarOverride = null;
}
}
} /**
* The default system bar tint color value.
*/
public static final int DEFAULT_TINT_COLOR = 0x99000000; private static String sNavBarOverride; private final SystemBarConfig mConfig;
private boolean mStatusBarAvailable;
private boolean mNavBarAvailable;
private boolean mStatusBarTintEnabled;
private boolean mNavBarTintEnabled;
private View mStatusBarTintView;
private View mNavBarTintView; /**
* Constructor. Call this in the host activity onCreate method after its
* content view has been set. You should always create new instances when
* the host activity is recreated.
*
* @param activity The host activity.
*/
@TargetApi(19)
public SystemBarTintManager(Activity activity) { Window win = activity.getWindow();
ViewGroup decorViewGroup = (ViewGroup) win.getDecorView(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
// check theme attrs
int[] attrs = {android.R.attr.windowTranslucentStatus,
android.R.attr.windowTranslucentNavigation};
TypedArray a = activity.obtainStyledAttributes(attrs);
try {
mStatusBarAvailable = a.getBoolean(0, false);
mNavBarAvailable = a.getBoolean(1, false);
} finally {
a.recycle();
} // check window flags
WindowManager.LayoutParams winParams = win.getAttributes();
int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
if ((winParams.flags & bits) != 0) {
mStatusBarAvailable = true;
}
bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION;
if ((winParams.flags & bits) != 0) {
mNavBarAvailable = true;
}
} mConfig = new SystemBarConfig(activity, mStatusBarAvailable, mNavBarAvailable);
// device might not have virtual navigation keys
if (!mConfig.hasNavigtionBar()) {
mNavBarAvailable = false;
} if (mStatusBarAvailable) {
setupStatusBarView(activity, decorViewGroup);
}
if (mNavBarAvailable) {
setupNavBarView(activity, decorViewGroup);
} } /**
* Enable tinting of the system status bar.
*
* If the platform is running Jelly Bean or earlier, or translucent system
* UI modes have not been enabled in either the theme or via window flags,
* then this method does nothing.
*
* @param enabled True to enable tinting, false to disable it (default).
*/
public void setStatusBarTintEnabled(boolean enabled) {
mStatusBarTintEnabled = enabled;
if (mStatusBarAvailable) {
mStatusBarTintView.setVisibility(enabled ? View.VISIBLE : View.GONE);
}
} /**
* Enable tinting of the system navigation bar.
*
* If the platform does not have soft navigation keys, is running Jelly Bean
* or earlier, or translucent system UI modes have not been enabled in either
* the theme or via window flags, then this method does nothing.
*
* @param enabled True to enable tinting, false to disable it (default).
*/
public void setNavigationBarTintEnabled(boolean enabled) {
mNavBarTintEnabled = enabled;
if (mNavBarAvailable) {
mNavBarTintView.setVisibility(enabled ? View.VISIBLE : View.GONE);
}
} /**
* Apply the specified color tint to all system UI bars.
*
* @param color The color of the background tint.
*/
public void setTintColor(int color) {
setStatusBarTintColor(color);
setNavigationBarTintColor(color);
} /**
* Apply the specified drawable or color resource to all system UI bars.
*
* @param res The identifier of the resource.
*/
public void setTintResource(int res) {
setStatusBarTintResource(res);
setNavigationBarTintResource(res);
} /**
* Apply the specified drawable to all system UI bars.
*
* @param drawable The drawable to use as the background, or null to remove it.
*/
public void setTintDrawable(Drawable drawable) {
setStatusBarTintDrawable(drawable);
setNavigationBarTintDrawable(drawable);
} /**
* Apply the specified alpha to all system UI bars.
*
* @param alpha The alpha to use
*/
public void setTintAlpha(float alpha) {
setStatusBarAlpha(alpha);
setNavigationBarAlpha(alpha);
} /**
* Apply the specified color tint to the system status bar.
*
* @param color The color of the background tint.
*/
public void setStatusBarTintColor(int color) {
if (mStatusBarAvailable) {
mStatusBarTintView.setBackgroundColor(color);
}
} /**
* Apply the specified drawable or color resource to the system status bar.
*
* @param res The identifier of the resource.
*/
public void setStatusBarTintResource(int res) {
if (mStatusBarAvailable) {
mStatusBarTintView.setBackgroundResource(res);
}
} /**
* Apply the specified drawable to the system status bar.
*
* @param drawable The drawable to use as the background, or null to remove it.
*/
@SuppressWarnings("deprecation")
public void setStatusBarTintDrawable(Drawable drawable) {
if (mStatusBarAvailable) {
mStatusBarTintView.setBackgroundDrawable(drawable);
}
} /**
* Apply the specified alpha to the system status bar.
*
* @param alpha The alpha to use
*/
@TargetApi(11)
public void setStatusBarAlpha(float alpha) {
if (mStatusBarAvailable && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
mStatusBarTintView.setAlpha(alpha);
}
} /**
* Apply the specified color tint to the system navigation bar.
*
* @param color The color of the background tint.
*/
public void setNavigationBarTintColor(int color) {
if (mNavBarAvailable) {
mNavBarTintView.setBackgroundColor(color);
}
} /**
* Apply the specified drawable or color resource to the system navigation bar.
*
* @param res The identifier of the resource.
*/
public void setNavigationBarTintResource(int res) {
if (mNavBarAvailable) {
mNavBarTintView.setBackgroundResource(res);
}
} /**
* Apply the specified drawable to the system navigation bar.
*
* @param drawable The drawable to use as the background, or null to remove it.
*/
@SuppressWarnings("deprecation")
public void setNavigationBarTintDrawable(Drawable drawable) {
if (mNavBarAvailable) {
mNavBarTintView.setBackgroundDrawable(drawable);
}
} /**
* Apply the specified alpha to the system navigation bar.
*
* @param alpha The alpha to use
*/
@TargetApi(11)
public void setNavigationBarAlpha(float alpha) {
if (mNavBarAvailable && Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
mNavBarTintView.setAlpha(alpha);
}
} /**
* Get the system bar configuration.
*
* @return The system bar configuration for the current device configuration.
*/
public SystemBarConfig getConfig() {
return mConfig;
} /**
* Is tinting enabled for the system status bar?
*
* @return True if enabled, False otherwise.
*/
public boolean isStatusBarTintEnabled() {
return mStatusBarTintEnabled;
} /**
* Is tinting enabled for the system navigation bar?
*
* @return True if enabled, False otherwise.
*/
public boolean isNavBarTintEnabled() {
return mNavBarTintEnabled;
} private void setupStatusBarView(Context context, ViewGroup decorViewGroup) {
mStatusBarTintView = new View(context);
LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, mConfig.getStatusBarHeight());
params.gravity = Gravity.TOP;
if (mNavBarAvailable && !mConfig.isNavigationAtBottom()) {
params.rightMargin = mConfig.getNavigationBarWidth();
}
mStatusBarTintView.setLayoutParams(params);
mStatusBarTintView.setBackgroundColor(DEFAULT_TINT_COLOR);
mStatusBarTintView.setVisibility(View.GONE);
decorViewGroup.addView(mStatusBarTintView);
} private void setupNavBarView(Context context, ViewGroup decorViewGroup) {
mNavBarTintView = new View(context);
LayoutParams params;
if (mConfig.isNavigationAtBottom()) {
params = new LayoutParams(LayoutParams.MATCH_PARENT, mConfig.getNavigationBarHeight());
params.gravity = Gravity.BOTTOM;
} else {
params = new LayoutParams(mConfig.getNavigationBarWidth(), LayoutParams.MATCH_PARENT);
params.gravity = Gravity.RIGHT;
}
mNavBarTintView.setLayoutParams(params);
mNavBarTintView.setBackgroundColor(DEFAULT_TINT_COLOR);
mNavBarTintView.setVisibility(View.GONE);
decorViewGroup.addView(mNavBarTintView);
} /**
* Class which describes system bar sizing and other characteristics for the current
* device configuration.
*
*/
public static class SystemBarConfig { private static final String STATUS_BAR_HEIGHT_RES_NAME = "status_bar_height";
private static final String NAV_BAR_HEIGHT_RES_NAME = "navigation_bar_height";
private static final String NAV_BAR_HEIGHT_LANDSCAPE_RES_NAME = "navigation_bar_height_landscape";
private static final String NAV_BAR_WIDTH_RES_NAME = "navigation_bar_width";
private static final String SHOW_NAV_BAR_RES_NAME = "config_showNavigationBar"; private final boolean mTranslucentStatusBar;
private final boolean mTranslucentNavBar;
private final int mStatusBarHeight;
private final int mActionBarHeight;
private final boolean mHasNavigationBar;
private final int mNavigationBarHeight;
private final int mNavigationBarWidth;
private final boolean mInPortrait;
private final float mSmallestWidthDp; private SystemBarConfig(Activity activity, boolean translucentStatusBar, boolean traslucentNavBar) {
Resources res = activity.getResources();
mInPortrait = (res.getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT);
mSmallestWidthDp = getSmallestWidthDp(activity);
mStatusBarHeight = getInternalDimensionSize(res, STATUS_BAR_HEIGHT_RES_NAME);
mActionBarHeight = getActionBarHeight(activity);
mNavigationBarHeight = getNavigationBarHeight(activity);
mNavigationBarWidth = getNavigationBarWidth(activity);
mHasNavigationBar = (mNavigationBarHeight > 0);
mTranslucentStatusBar = translucentStatusBar;
mTranslucentNavBar = traslucentNavBar;
} @TargetApi(14)
private int getActionBarHeight(Context context) {
int result = 0;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
TypedValue tv = new TypedValue();
context.getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true);
result = TypedValue.complexToDimensionPixelSize(tv.data, context.getResources().getDisplayMetrics());
}
return result;
} @TargetApi(14)
private int getNavigationBarHeight(Context context) {
Resources res = context.getResources();
int result = 0;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
if (hasNavBar(context)) {
String key;
if (mInPortrait) {
key = NAV_BAR_HEIGHT_RES_NAME;
} else {
key = NAV_BAR_HEIGHT_LANDSCAPE_RES_NAME;
}
return getInternalDimensionSize(res, key);
}
}
return result;
} @TargetApi(14)
private int getNavigationBarWidth(Context context) {
Resources res = context.getResources();
int result = 0;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
if (hasNavBar(context)) {
return getInternalDimensionSize(res, NAV_BAR_WIDTH_RES_NAME);
}
}
return result;
} @TargetApi(14)
private boolean hasNavBar(Context context) {
Resources res = context.getResources();
int resourceId = res.getIdentifier(SHOW_NAV_BAR_RES_NAME, "bool", "android");
if (resourceId != 0) {
boolean hasNav = res.getBoolean(resourceId);
// check override flag (see static block)
if ("1".equals(sNavBarOverride)) {
hasNav = false;
} else if ("0".equals(sNavBarOverride)) {
hasNav = true;
}
return hasNav;
} else { // fallback
return !ViewConfiguration.get(context).hasPermanentMenuKey();
}
} private int getInternalDimensionSize(Resources res, String key) {
int result = 0;
int resourceId = res.getIdentifier(key, "dimen", "android");
if (resourceId > 0) {
result = res.getDimensionPixelSize(resourceId);
}
return result;
} @SuppressLint("NewApi")
private float getSmallestWidthDp(Activity activity) {
DisplayMetrics metrics = new DisplayMetrics();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
activity.getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
} else {
// TODO this is not correct, but we don't really care pre-kitkat
activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
}
float widthDp = metrics.widthPixels / metrics.density;
float heightDp = metrics.heightPixels / metrics.density;
return Math.min(widthDp, heightDp);
} /**
* Should a navigation bar appear at the bottom of the screen in the current
* device configuration? A navigation bar may appear on the right side of
* the screen in certain configurations.
*
* @return True if navigation should appear at the bottom of the screen, False otherwise.
*/
public boolean isNavigationAtBottom() {
return (mSmallestWidthDp >= 600 || mInPortrait);
} /**
* Get the height of the system status bar.
*
* @return The height of the status bar (in pixels).
*/
public int getStatusBarHeight() {
return mStatusBarHeight;
} /**
* Get the height of the action bar.
*
* @return The height of the action bar (in pixels).
*/
public int getActionBarHeight() {
return mActionBarHeight;
} /**
* Does this device have a system navigation bar?
*
* @return True if this device uses soft key navigation, False otherwise.
*/
public boolean hasNavigtionBar() {
return mHasNavigationBar;
} /**
* Get the height of the system navigation bar.
*
* @return The height of the navigation bar (in pixels). If the device does not have
* soft navigation keys, this will always return 0.
*/
public int getNavigationBarHeight() {
return mNavigationBarHeight;
} /**
* Get the width of the system navigation bar when it is placed vertically on the screen.
*
* @return The width of the navigation bar (in pixels). If the device does not have
* soft navigation keys, this will always return 0.
*/
public int getNavigationBarWidth() {
return mNavigationBarWidth;
} /**
* Get the layout inset for any system UI that appears at the top of the screen.
*
* @param withActionBar True to include the height of the action bar, False otherwise.
* @return The layout inset (in pixels).
*/
public int getPixelInsetTop(boolean withActionBar) {
return (mTranslucentStatusBar ? mStatusBarHeight : 0) + (withActionBar ? mActionBarHeight : 0);
} /**
* Get the layout inset for any system UI that appears at the bottom of the screen.
*
* @return The layout inset (in pixels).
*/
public int getPixelInsetBottom() {
if (mTranslucentNavBar && isNavigationAtBottom()) {
return mNavigationBarHeight;
} else {
return 0;
}
} /**
* Get the layout inset for any system UI that appears at the right of the screen.
*
* @return The layout inset (in pixels).
*/
public int getPixelInsetRight() {
if (mTranslucentNavBar && !isNavigationAtBottom()) {
return mNavigationBarWidth;
} else {
return 0;
}
} } }
希望可以帮到大家。