Как затемнить системную панель в Android 3.0 (Honeycomb)? - PullRequest
8 голосов
/ 04 мая 2011

Как программно уменьшить яркость системной панели в Android 3.0 (Honeycomb)?

Ответы [ 2 ]

13 голосов
/ 04 мая 2011

Попробуйте использовать следующий код:

View v = findViewById(R.id.myview);
v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
1 голос
/ 27 марта 2013

Вы можете затемнить его, используя SYSTEM_UI_FLAG_LOW_PROFILE, но оно появится, когда пользователь коснется панели.Но вы можете отключить его, кроме home.

добавить это в манифест.

<uses-permission android:name="android.permission.EXPAND_STATUS_BAR"/>

внутри onCreate ()

this.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_home);
    View v = findViewById(R.id.home_view);
    v.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);

, где home_view - родительское представление XML-файла.

 @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
            return false;
        }

 public void onWindowFocusChanged(boolean hasFocus)
     {
             try
             {
                if(!hasFocus)
                {
                     Object service  = getSystemService("statusbar");
                     Class<?> statusbarManager = Class.forName("android.app.StatusBarManager");
                     Method collapse = statusbarManager.getMethod("collapse");
                     collapse .setAccessible(true);
                     collapse .invoke(service);
                }
             }
             catch(Exception ex)
             {
             }
     }

вы не можете захватить домашнее событие, единственное, что вы можете сделать, это указать домашнюю категорию приложения и позволить пользователю выбрать.

 <category android:name="android.intent.category.HOME" />
...