Подтвердить что ты не робот

Мне нужен прогресс, а не диалог прогресса

Я хочу показать прогресс в моем приложении во время загрузки данных. У меня есть активность и перемещение из одной активности в другую. Я разбираю некоторые XML-данные, поэтому пока синтаксический анализ не завершится, я хочу показать эффект циклической загрузки.

4b9b3361

Ответ 1

Вы можете использовать неопределенный ProgressBar для эффекта циклической загрузки. Вот как вы это делаете в XML:

<ProgressBar android:indeterminate="true"
            android:layout_width="50dp" android:layout_height="50dp"
            android:id="@+id/marker_progress" style="?android:attr/progressBarStyle"
            android:layout_gravity="center_vertical|center_horizontal"/>

Вы можете изменить высоту и ширину так, как вы хотите. Когда вы закончите загрузку, вы можете изменить ее видимость на View.INVISIBLE или View.GONE

Ответ 2

Вам нужно создать анимационный файл xml в папке res/anim и вызвать startAnimation в вашем ImageView при загрузке данных и stopAnimation, когда вы перестанете загружать данные. И установите загрузку изображения в ImageView, например:

loading http://bigod26.com/pics/loading.png

Этот код id для XML-анимации круговой анимации

<?xml version="1.0" encoding="UTF-8"?>
<rotate
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromDegrees="0"
    android:toDegrees="360"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:duration="1200" 
    android:interpolator="@android:anim/linear_interpolator" />

Ответ 3

Вставьте это между двумя тегами просмотра

<ProgressBar android:id="@+id/loading_spinner"
        style="?android:progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" />

Ответ 4

Почему бы не использовать пользовательский интерфейс progressbar [/p >

myProgressDialog = ProgressDialog.show(ListingPage.this,"Please Wait", "Loading Date", true);

дан

Ответ 5

Используйте AsyncTask для загрузки и разбора:

 /**
   * Background task that fetched the content from server and parses the content.
   */
  private class BackgroundLoadingTask extends AsyncTask<InputStream, Void, Boolean> {

    @Override
    protected void onPreExecute() {
      // show the progress bar
      Activity.this.requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
      Activity.this.requestWindowFeature(Window.PROGRESS_VISIBILITY_ON);
    }

    @Override
    protected Boolean doInBackground(InputStream... params) {

      // try to load XML from HTTP server and parse

      return true;
    }


    @Override
    protected void onPostExecute(Boolean parsingError) {
      // hide the progress bar
      Activity.this.requestWindowFeature(Window.PROGRESS_VISIBILITY_OFF);


    }
  }

Ответ 6

Как и в диалоговом окне прогресса, используйте анимацию вместо нее с задачей async и просто сделайте ее видимой при преобследовании и спрячьте ее снова в сообщении.

Ответ 7

Чтобы развернуть бит на ответ trgraglia, вы можете создать индикатор неопределенности (поведение: цикл) и установить видимость на false. Во время AsyncTask preExecute() сделайте его видимым, а во время AsyncTask onPostExecute() верните его обратно в невидимое (при условии, что вы остаетесь на том же самом мероприятии или в случае, если вам понадобится). Это устраняет необходимость создания анимации.