Androidで通知欄の透明化を実現する方法

2381 ワード

この特性はandorid 4です.4でサポートされているのは、少なくともapi 19が必要です.つまり、Androidの機が4.4未満であれば、浸透通知欄は効果がありません.使い方をご紹介します.とても簡単です.

 /**
   *            onCreate()  ,       onCreate()   ,                  。
   */
public void initSystemBar() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
      setTranslucentStatus(true);
      SystemBarTintManager tintManager = new SystemBarTintManager(this);
      tintManager.setStatusBarTintEnabled(true);
      tintManager.setStatusBarTintResource(R.color.red);
    }
  }
  /**
   *         
   * @param on
   */
  @SuppressLint("InlinedApi") 
  private void setTranslucentStatus(boolean on) { 
    Window win = this.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:fitsSystemWindows=「true」
が表示されます.
Android5.0完全透明ステータスバーの効果.具体的なインスタンスコードは以下のとおりです.
上記の効果を実現するコードは以下の通りです.

public class MainActivity extends Activity {
  @SuppressLint("InlinedApi")
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    if(VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) {
      Window window = getWindow();
      window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
          | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
      window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
              | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
      window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
      window.setStatusBarColor(Color.TRANSPARENT);
      window.setNavigationBarColor(Color.TRANSPARENT);
    }
    setContentView(R.layout.activity_main);
  }
}

以上のコードはよく書けませんが、皆さんにもっと提出してください.同時に、本文の共有が皆さんに役に立つことを望んでいます.