views:

578

answers:

1

How can I programmatically display an hourglass in an Android application ?

+11  A: 

You can use a ProgressDialog:

ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("Thinking...");
dialog.setIndeterminate(true);
dialog.setCancelable(false);
dialog.show();

The above code will show the following dialog on top of your Activity:

alt text

Alternatively (or additionally) you can display a Progress indicator in the title bar of your Activity.

alt text

You need to request this as a feature near the top of the onCreate() method of your Activity using the following code:

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

Then turn it on like this:

setProgressBarIndeterminateVisibility(true);

and turn it off like this:

setProgressBarIndeterminateVisibility(true);
Dave Webb
The problem is that after displaying the dialog box I ran a relatively long treatment which prevents the display of the dialog box that appears at the end of treatment when I no longer need !
Arutha
Have a look at `AsyncTask`. You display and hide the `ProgressDialog` in `onPreExecute()` and `onPostExecute` and do your work in `doInBackground`. http://android-developers.blogspot.com/2009/05/painless-threading.html
Dave Webb
Might also be worth reading the Android Developer Guide "Designing For Responsiveness" http://developer.android.com/guide/practices/design/responsiveness.html
fiXedd