How do I dim the system bar in Android 3.0 (Honeycomb)?
Asked Answered
S

2

8

How do I programatically dim the system bar in Android 3.0 (Honeycomb)?

Stutsman answered 4/5, 2011 at 12:59 Comment(0)
K
13

Try using the following code:

View v = findViewById(R.id.myview);
v.setSystemUiVisibility(View.STATUS_BAR_HIDDEN);
Karmenkarna answered 4/5, 2011 at 13:6 Comment(4)
Is there a way to do this via XML? The reason I wish to do so is to change the functionality of existing compiled apps with only resource editing.Yearround
i have tried with the view that i set in contentview. but it's not working. any idea?Scaliger
This should do the trick: "getWindow().getDecorView().setSystemUiVisibility( View.STATUS_BAR_HIDDEN )"Carencarena
Since API 14 getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LOW_PROFILE ); is the preferedCauca
L
1

you can dim it using SYSTEM_UI_FLAG_LOW_PROFILE but it will appear when user touch the bar. But you can disable it except home.

add this in manifest.

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

inside 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);

where home_view is the parent view of xml file.

 @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)
             {
             }
     }

you can't capture the home event, the only thing is you can do is to give your application home category and let the user choose.

 <category android:name="android.intent.category.HOME" />
Lucho answered 27/3, 2013 at 5:56 Comment(1)
#14802428Sulphanilamide

© 2022 - 2024 — McMap. All rights reserved.