web-dev-qa-db-fra.com

Indicateur d'activité Android?

Comment puis-je afficher un indicateur d'activité dans Android? Existe-t-il une méthode de bibliothèque Android donnée? Si non, s'il vous plaît laissez-moi savoir les techniques utilisées pour afficher l'indicateur d'activité dans Android?.

47
Sanal MS

faire quelque chose comme ça 

ProgressDialog mDialog = new ProgressDialog(getApplicationContext());
            mDialog.setMessage("Please wait...");
            mDialog.setCancelable(false);
            mDialog.show();
55
ingsaurabh

L'équivalent le plus direct de l'indicateur d'activité iOS dans Android est la barre de progression, mais définie sur indéterminée. Ainsi, vous pouvez déposer la vue dans votre mise en page et cela vous fournira une animation en rotation.

<ProgressBar
    Android:layout_height="wrap_content"
    Android:layout_width="wrap_content"
    Android:id="@+id/ctrlActivityIndicator"
    Android:indeterminateOnly="true"
    Android:keepScreenOn="true"
     />

Vous pouvez l'utiliser pour indiquer une activité d'arrière-plan à l'utilisateur.

86

Il existe deux autres moyens d'afficher un indicateur d'activité sans utiliser ProgressDialog modal.

Vous pouvez utiliser ImageView dans votre mise en page et y appliquer une animation. Référez-vous au site du développeur .

public void startAnimation() {
  // Create an animation
  RotateAnimation rotation = new RotateAnimation(
      0f,
      360f,
      Animation.RELATIVE_TO_SELF,
      0.5f,
      Animation.RELATIVE_TO_SELF,
      0.5f);
  rotation.setDuration(1200);
  rotation.setInterpolator(new LinearInterpolator());
  rotation.setRepeatMode(Animation.RESTART);
  rotation.setRepeatCount(Animation.INFINITE);

  // and apply it to your imageview
  findViewById(R.id.myActivityIndicator).startAnimation(rotation);
}

Ou vous pouvez utiliser xml-drawable pour décrire une image d’arrière-plan, qui comportera une animation en rotation:

Tout d’abord, décrivez un dessinable (dans /res/drawable/my-indicator.xml)

<animated-rotate xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:drawable="@drawable/spinner_black_76"
    Android:pivotX="50%"
    Android:pivotY="50%"
    Android:framesCount="12"
    Android:frameDuration="100" />

Puis placez-le à l'arrière-plan d'une vue

19
Olegas
public class Mp3cutterActivity extends Activity {

    MP3Class mp3obj = null;
    TextView tv;
    MP3Class mp3classobj = null;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Context thiscontext = this.getApplicationContext();
        mp3classobj = new MP3Class(thiscontext);
        setContentView(R.layout.main);

        Button btn = (Button)findViewById(R.id.startbutton);
        tv = (TextView)findViewById(R.id.textview1);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                //show a wait indicator as well as the function that calls walkSdcard

                try {
                    new SearchSdCard(Mp3cutterActivity.this).execute();
                    // copyProtector.doCopyProtection();
                } catch (Exception e) {
                    System.out.println("in search SD card  " + e.getMessage());
                }
            }

            private void domp3stuff() {
                // TODO Auto-generated method stub
            }
        });
    }
}

class SearchSdCard extends AsyncTask<String, Void, Boolean> {

    Context context;    

    public ProgressDialog dialog;

    public SearchSdCard(Activity activity) {
        this.context = activity;
    }

    protected void onPreExecute() {
        dialog = new ProgressDialog(context);
        dialog.setMessage("wait for a moment...");
        dialog.show();
    }

    @Override
    protected Boolean doInBackground(String... params) {
        // TODO Auto-generated method stub
        boolean retval = true;
        mp3classobj.searchSdCard();
        return retval;
    }

    @Override
    protected void onPostExecute(Boolean result) {
        // TODO Auto-generated method stub
        if (dialog.isShowing()) {
            dialog.dismiss();
            tv.setText("mp3 cutter is an app which cuts down a chunk of memory \nfrom your sdcard by \ndeleting the .mp3 files and more \nyou were made a BAKRA :-)");
            if(!result){    
                tv.setText("error occured !!");
            }
        }
    }
    //refer below comment for the MP3class.Java file details
}
4
sudatt

L'indicateur d'activité n'est rien mais il est connu comme un dialogue de progression. Vous pouvez créer une programmabilité. Un certain nombre de tutoriels sont disponibles. Recherchez comment créer une boîte de dialogue de progression/ProgressBar.

ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
                progressDialog.setMax(100);
                progressDialog.setMessage("Its loading....");
                progressDialog.setTitle("ProgressDialog bar example");
progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
or
progressDialog.setProgressStyle(ProgressDialog.STYLE_CIRCULAR);

ou vous pouvez le créer en utilisant XML, définir la visibilité visible une fois que la tâche est terminée définir visibilité disparue

<ProgressBar
                Android:id="@+id/loading_spinner"
                Android:layout_width="wrap_content"
                Android:layout_height="wrap_content"
                Android:layout_marginTop="100dp"
                Android:indeterminateTintMode="src_atop"
                Android:indeterminateTint="@color/grey"
                Android:layout_gravity="center" />
0