1. 程式人生 > >Android 狀態列透明和圖示反色

Android 狀態列透明和圖示反色

public class BaseActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setStatusTransparent();
        setDarkStatusIcon(true);
    }

    /**
     * 說明:Android 4.4+ 設定狀態列透明
     */
    protected void setStatusTransparent
() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { // 5.0+ 實現 Window window = getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); } else
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { // 4.4 實現 getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } } /** * 說明:Android 6.0+ 狀態列圖示原生反色操作 */ protected void setDarkStatusIcon(boolean dark) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { View decorView = getWindow().getDecorView(); if
(decorView == null) return; int vis = decorView.getSystemUiVisibility(); if (dark) { vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } else { vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } decorView.setSystemUiVisibility(vis); } } }