ساده ترین راه برای ساختن دایره پیشروی اندروید ایجاد گروهی به نام ProgressDialog می باشد. Loadinbar هم می تواند ازطریق همین گروه ساخته شود. تنها تفاوت منطقی بین bar و دایره این است که اولی وقتی استفاده می شود که شما زمان کل انتظار برای فعالیت خاص را می دانید، در حالی که دومی زمانی استفاده می شود که شما زمان این انتظار را نمی دانید.

برای این منظور لازم است که یک آبجکت ازاین گروه را به عنوان نمونه قرار دهید، که ترکیب آن را مشاهده می کنید.

 

ProgressDialog progress = new ProgressDialog(this);

 

اکنون شما می توانید چند ویژگی مربوط به این دیالوگ را، از جمله استایل، متن و غیره ، تنظیم کنید.

 

progress.setMessage("Downloading Music :) ");
progress.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progress.setIndeterminate(true);

 

علاوه بر متدهای فوق متدهای دیگری نیز از کلاس ProgressDialog به شرح زیر ارائه شده است:

شماره کلاسها و توضیحات آن
1 getMax()

این متد حداکثر مقدار progress را برمی گرداند.

2 incrementProgressBy(int diff)

این متد باعث افزایش نوار پیشرفت توسط تفاوت مقداری که  به عنوان یک پارامتر ارسال شده می شود.

3 setIndeterminate(boolean indeterminate)

این متد نشانگر پیشرفت را به عنوان تعیین شده یا غیرقابل تعیین مشخص می کند.

4 setMax(int max)

این متد حداکثر مقدار نوار پیشرفت را تنظیم می کند.

5 setProgress(int value)

این متد برای به روز رسانی نوار پیشرفت با مقدار خاصی استفاده می شود.

6 show(Context context, CharSequence title, CharSequence message)

این روش یک روش استاتیک می باشد که برای نمایش دیالوگ پیشروی استفاده می شود.

 مثال

این مثال استفاده از دیالوگ پیشروی گردان را توضیح می دهد. با فشار دکمه دیالوگ پیشروی گردان خواهید داشت.

برای اجرای این مثال لازم است پس از پیش بردن برنامه طبق مراحل زیر، آن را روی یک دستگاه واقعی اجرا کنید.

مرحله توضیحات
1 برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان ProgressDialog تحت بسته ی com.example. progressdialog نام گذاری کنید.
2 فایل src/MainActivity.java را برای افزودن کد پیشروی و نمایش دیالوگ پیشروی spinning، تغییر دهید.
3 فایل res/layout/activity_main.xml را برای افزودن کد XML مربوطه تغییر دهید.
4 فایل res/values/string.xml را برای افزودن یک پیام به عنوان یک رشته ی ثابت، تغییر دهید.
5 برنامه را اجرا کنید، یک دستگاه اجرایی اندروید انتخاب کنید و برنامه را روی آن نصب کرده و نتایج را بررسی کنید.

در زیر محتوای فایل تغییر یافته src/MainActivity.java. را مشاهده می کنید.

 

package com.example.sairamkrishna.myapplication;

import android.app.ProgressDialog;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity {
   Button b1;
   private  ProgressDialog progressBar;
   private int progressBarStatus = 0;
   private Handler progressBarbHandler = new Handler();
   private long fileSize = 0;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      b1=(Button)findViewById(R.id.button);

      b1.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            progressBar = new ProgressDialog(v.getContext());
            progressBar.setCancelable(true);
            progressBar.setMessage("File downloading ...");
            progressBar.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressBar.setProgress(0);
            progressBar.setMax(100);
            progressBar.show();
            progressBarStatus = 0;

            fileSize = 0;
            new Thread(new Runnable() {
               public void run() {
                  while (progressBarStatus < 100) {
                     progressBarStatus = downloadFile();

                     try {
                        Thread.sleep(1000);
                     } catch (InterruptedException e) {
                        e.printStackTrace();
                     }

                     progressBarbHandler.post(new Runnable() {
                        public void run() {
                           progressBar.setProgress(progressBarStatus);
                        }
                     });
                  }

                  if (progressBarStatus >= 100) {
                     try {
                        Thread.sleep(2000);
                     } catch (InterruptedException e) {
                        e.printStackTrace();
                     }
                     progressBar.dismiss();
                  }
               }
            }).start();
         }
      });
   }
  
   public int downloadFile() {
      while (fileSize <= 1000000) {
         fileSize++;

         if (fileSize == 100000) {
            return 10;
         }else if (fileSize == 200000) {
            return 20;
         }else if (fileSize == 300000) {
            return 30;
         }else if (fileSize == 400000) {
            return 40;
         }else if (fileSize == 500000) {
            return 50;
         }else if (fileSize == 700000) {
            return 70;
         }else if (fileSize == 800000) {
            return 80;
         }
      }
      return 100;
   }
}

 

محتوای res/layout/activity_main.xml مانند زیر تغییر دهید.

 

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
   
   <TextView android:text="Music Palyer" android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/textview"
      android:textSize="35dp"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_below="@+id/textview"
      android:layout_centerHorizontal="true"
      android:textColor="#ff7aff24"
      android:textSize="35dp" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="download"
      android:id="@+id/button"
      android:layout_alignParentBottom="true"
      android:layout_centerHorizontal="true"
      android:layout_marginBottom="112dp" />
      
   <ImageView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:id="@+id/imageView"
      android:src="@drawable/abc"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true" />
      
</RelativeLayout>

 

res/values/string.xml را به شکل زیر تغییر دهید.

 

<resources>
   <string name="app_name">My Application</string>
</resources>

 

پیش فرض AndroidManifest.xml:

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.sairamkrishna.myapplication.MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
      
   </application>
</manifest>

 

اجازه بدهید برنامه ی ProgressDialog را اجرا کنیم. فرض می کنیم که دستگاه موبایل اندروید خود را به کامپیوتر متصل کرده اید. برای اجرای برنامه از Eclipse، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکنRunEclipse Run Icon از تولبار کلیک کنید. قبل از شروع برنامه ی شما، Eclipse پنجره ی زیر را برای انتخاب گزینه ی محل اجرای برنامه ی اندرویدتان، نمایش خواهد داد.

Android Progress Dialog Tutorial

اکنون فقط دکمه را فشار دهید تا Progress Dialog آغاز شود. پس از فشار دکمه پنجره ی زیر نمایش داده خواهد شد.

Android Progress Dialog Tutorial