android系統都有深色狀態列字型模式,但是目前只看到了小公尺和魅族公開了各自的實現方法,小公尺的支援miui v6以上版本,魅族的支援flyme4.0以上版本。android6.0以上系統好多品牌手機都好多都可以修改:
/**
* 設定狀態列圖示為深色和魅族特定的文字風格,flyme4.0以上
* 可以用來判斷是否為flyme使用者
* @param window 需要設定的視窗
* @param dark 是否把狀態列字型及圖示顏色設定為深色
* @return boolean 成功執行返回true
* */
public static boolean flymesetstatusbarlightmode(window window, boolean dark) else
meizuflags.setint(lp, value);
window.setattributes(lp);
result = true;
} catch (exception e)
}return result;
}
/**
* 需要miuiv6以上
* @param activity
* @param dark 是否把狀態列字型及圖示顏色設定為深色
* @return boolean 成功執行返回true
* */
public static boolean miuisetstatusbarlightmode(activity activity, boolean dark) else
result=true;
if (build.version.sdk_int >= build.version_codes.m) else
}}catch (exception e)
}return result;
}
官方在android6.0中提供了亮色狀態列模式,配置只需一行**:
if (build.version.sdk_int >= build.version_codes.m)
在設定狀態列全透明後,整個activity布局都會上移充滿整個螢幕,如果你不想讓布局上移的話就需要在根布局設定:
android:fitssystemwindows="true"
以下是工具類:
public class statusbarutil else
if (build.version.sdk_int >= build.version_codes.kitkat)
}/**
* 修改狀態列顏色,支援4.4以上版本
* @param activity
* @param colorid
*/public static void setstatusbarcolor(activity activity,int colorid) else if (build.version.sdk_int >= build.version_codes.kitkat)
}/**
*狀態列亮色模式,設定狀態列黑色文字、圖示,
* 適配4.4以上版本miuiv、flyme和6.0以上版本其他android
* @param activity
* @return 1:miuui 2:flyme 3:android6.0
*/public static int statusbarlightmode(activity activity)else if(flymesetstatusbarlightmode(activity.getwindow(), true))else if (build.version.sdk_int >= build.version_codes.m)
}return result;
}/**
* 已知系統型別時,設定狀態列黑色文字、圖示。
* 適配4.4以上版本miuiv、flyme和6.0以上版本其他android
* @param activity
* @param type 1:miuui 2:flyme 3:android6.0
*/public static void statusbarlightmode(activity activity,int type)else if(type==2)else if(type==3)
}/**
* 狀態列暗色模式,清除miui、flyme或6.0以上版本狀態列黑色文字、圖示
*/public static void statusbardarkmode(activity activity,int type)else if(type==2)else if(type==3)
}/**
* 設定狀態列圖示為深色和魅族特定的文字風格
* 可以用來判斷是否為flyme使用者
* @param window 需要設定的視窗
* @param dark 是否把狀態列文字及圖示顏色設定為深色
* @return boolean 成功執行返回true
* */
public static boolean flymesetstatusbarlightmode(window window, boolean dark) else
meizuflags.setint(lp, value);
window.setattributes(lp);
result = true;
} catch (exception e)
}return result;
} /**
* 需要miuiv6以上
* @param activity
* @param dark 是否把狀態列文字及圖示顏色設定為深色
* @return boolean 成功執行返回true
* */
public static boolean miuisetstatusbarlightmode(activity activity, boolean dark) else
result=true;
if (build.version.sdk_int >= build.version_codes.m) else
}}catch (exception e)
}return result;
}}
Android 修改狀態列顏色
colorprimarydark 和 statusbarcolor 都可以修改狀態列顏色 相同點 1 都能修改statusbar 顏色 2 android 5.0 以上才能獲得支援 不同點 1 statusbracolor 具有更高優先順序 2 statusbracolor 在 android 5....
Android 修改狀態列顏色
專案中碰到修改狀態列顏色的需求,做個記錄 需要修改的activity,oncreate中增加 修改狀態列字型顏色為黑色 view decorview getwindow getdecorview int option view.system ui flag light status bar deco...
Android修改狀態列顏色即狀態列字型顏色
修改當前 activity 的顯示模式,hidestatusbarbackground true 全屏模式,false 著色模式 param activity param hidestatusbarbackground public static void setstatusbar activity...