I want to hide the action bar when an activity is started and when the user touches the screen show it for a few seconds, then hide it again.
What I have come up with is just below, but I want to know if there is anything better I could have done (ignoring some style issues: magic numbers, duplication of logic,etc).
And I am using actionbarsherlock.
Thanks
Runnable hideActionbarRunnable = new Runnable() { @Override public void run() { ActionBar bar = getSupportActionBar(); bar.hide(); } }; Runnable showActionbarRunnable = new Runnable() { @Override public void run() { ActionBar bar = getSupportActionBar(); bar.show(); } }; Runnable animateActionBarHide = new Runnable() { @Override public void run() { handler.postDelayed(hideActionbarRunnable,3000); } }; Runnable animateActionBarShow = new Runnable() { @Override public void run() { handler.post(showActionbarRunnable); handler.postDelayed(hideActionbarRunnable,3000); } }; @Override protected void onResume() { super.onResume(); Log.i(MainActivity.TAG,"CameraActivity: onResume called"); Thread t = new Thread(animateActionBarHide); t.start(); } @Override public boolean onTouchEvent(MotionEvent event) { ActionBar bar = getSupportActionBar(); if(event.getAction() == MotionEvent.ACTION_DOWN) { Thread t = new Thread(animateActionBarShow); t.start(); } else { Thread t = new Thread(animateActionBarHide); t.start(); } return super.onTouchEvent(event); }