سبد (0)

آموزش ProgressCircle اندروید

آموزشProgressCircle   اندروید

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

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

 

ProgressDialog progress =newProgressDialog(this);

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

 

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

علاوه بر این متدها، متدهای دیگری نیز توسط کلاس ProgressDialog ارائه می شوند.

  • getMax()

    این متد بیشترین مقدار یک پیشروی را گزارش می دهد.

  • incrementProgressBy(int diff)

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

  • setIndeterminate(boolean indeterminate)

    این متد نشانگر پیشروی را به عنوان معین یا نامعین، تنظیم می کند.

  • setMax(int max)

    این متد بیشترین مقدار یک دیالوگ پیشروی را تنظیم می کند.

  • setProgress(int value)

    این متد برای آپدیت دیالوگ پیشروی با چند مقدار مشخص، استفاده می شود.

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

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

مثال

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

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

  • برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان  ProgressDialog   به عنوان بسته ی com.PRG. progressdialog نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDKو Compile With در آخرین ورژن Android SDKهستند تا از سطوح بالاتر API  استفاده کنید.

  • فایل src/MainActivity.java را برای افزودن کد پیشروی و نمایش دیالوگ پیشروی spinning، تغییر دهید.

  • فایل res/layout/activity_main.xml را برای افزودن کد XML مربوطه تغییر دهید.

  • برنامه را اجرا کنید، یک دستگاه اجرایی اندروید انتخاب کنید و برنامه را روی آن نصب کرده و نتایج را بررسی کنید.

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

 

package com.PRG.ProgressDialog   ;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;
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;
   }
   
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.menu_main, menu);
      return true;
   }
   
   @Override
   public boolean onOptionsItemSelected(MenuItem item) {
      // Handle action bar item clicks here. The action bar will
      // automatically handle clicks on the Home/Up button, so long
      // as you specify a parent activity in AndroidManifest.xml.
      
      int id = item.getItemId();
      
      //noinspection SimplifiableIfStatement
      if (id == R.id.action_settings) {
         return true;
      }
      return super.onOptionsItemSelected(item);
   }
}

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

 

<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>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
</resources>

محتوای فایل AndroidManifest.xml را به شکل زیر تغییر دهید.

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.PRG.progressdialog"
android:versionCode="1"
android:versionName="1.0" >

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >

<activity
android:name="com.PRG.ProgressDialog.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، یکی ازفایل های فعالیت پروژه را باز کرده و روی آیکنRun از تولبار کلیک کنید.

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

حالا دکمه را فشار دهید و بعد از فشرده شدن تصویر زیر را می بینید.

<resources>
   <string name="app_name">My Application</string>
   <string name="hello_world">Hello world!</string>
   <string name="action_settings">Settings</string>
</resources>

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehiمجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامیپرداخت آنلاین -  بانک ملتمعرفی بیاموز در شبکه سهپرداخت آنلاین - بانک اقتصاد نوینپرداخت آنلاین - بانک سامان