ساخت ProgressDialog یا ProgressBar برای نمایش میزان پیشرفت اجرای یک سری عملیات، در برنامه نویسی اندروید

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
فهرست مطالب:

  1. ساخت یک ProgressDialog برای نمایش میزان پیشرفت اجرای یک سری عملیات (کد)، در برنامه نویسی اندروید
  2. ساخت و نمایش یک ProgressBar ، تنها با کدهای java ، در برنامه نویسی اندروید
  3. ساخت و نمایش یک ProgressBar ، با استفاده از تگ ProgressBar در فایل xml ، به همراه دو دکمه (Button) برای نمایش ProgressBar و عدم نمایش ProgressBar ، در برنامه نویسی اندروید


منبع: kelidestan
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت یک ProgressDialog برای نمایش میزان پیشرفت اجرای یک سری عملیات (کد)، در برنامه نویسی اندروید

ساخت یک ProgressDialog برای نمایش میزان پیشرفت اجرای یک سری عملیات (کد)، در برنامه نویسی اندروید

با استفاده از ProgressDialog می توانیم میزان پیشرفت اجرای یک سری عملیات (کد) را به کاربر نمایش بدهیم تا وی میزان پیشرفت اجرای عملیات های مورد نظر را بداند.


1043.jpg

برای ساخت یک ProgressDialog و تعیین ویژگی های آن، کدهای زیر را می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]ProgressDialog pd [COLOR=#339933]=[/COLOR] [B]new[/B] ProgressDialog[COLOR=#009900]([/COLOR][B]this[/B][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
pd.[COLOR=#006633]setProgressStyle[/COLOR][COLOR=#009900]([/COLOR]ProgressDialog.[COLOR=#006633]STYLE_HORIZONTAL[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
pd.[COLOR=#006633]setMessage[/COLOR][COLOR=#009900]([/COLOR][COLOR=#0000FF]"Your Message ..."[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
pd.[COLOR=#006633]setCancelable[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000066][B]true[/B][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
اما هنوز ProgressDialog ساخته شده را به کاربر نمایش نداده ایم. برای نمایش ProgressDialog به کاربر، باید کد زیر را اجرا کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]pd.[COLOR=#006633]show[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
برای عدم نمایش ProgressDialog (یعنی بستن ProgressDialog)، باید کد زیر را اجرا کنیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]pd.[COLOR=#006633]cancel[/COLOR][COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
اما دقت داشته باشید که در بین دو حالت شروع به نمایش ProgressDialog و بستن ProgressDialog ، باید چندین بار میزان پیشرفت به کاربر نمایش داده شود. یعنی مثلا باید حالت های زیر را داشته باشیم :

1- شروع نمایش ProgressDialog (مثلا با مقدار پیشرفت 0 درصد)

2- تغییر میزان پیشرفت ProgressDialog به 25 درصد (مثلا بعد از 7 ثانیه)

3- تغییر میزان پیشرفت ProgressDialog به 50 درصد (مثلا بعد از 7 ثانیه)

4- تغییر میزان پیشرفت ProgressDialog به 75 درصد (مثلا بعد از 7 ثانیه)

5- بسته شدن ProgressDialog (چون دیگر برای 100 درصد، نیازی به نمایش ProgressDialog نیست و آن را می بندیم)

بنابراین برای تغییر میزان پیشرفت نمایش داده شده در ProgressDialog نیز باید در مراحل مختلف، یک سری کد را اجرا کنیم که به شکل زیر می باشد :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]pd.[COLOR=#006633]setProgress[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]50[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در کد فوق، تعیین کرده ایم که میزان پیشرفت ProgressDialog برابر 50 درصد قرار داده شود.
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت و نمایش یک ProgressBar ، تنها با کدهای java ، در برنامه نویسی اندروید

ساخت و نمایش یک ProgressBar ، تنها با کدهای java ، در برنامه نویسی اندروید

با استفاده از کد های زیر، می توانیم یک ProgressBar را ساخته و نمایش بدهیم (تنها با کدهای java و بدون نیاز به تغییر در کدهای xml لایه گرافیکی متناظر با Activity) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace]RelativeLayout layout [COLOR=#339933]=[/COLOR] [B]new[/B] RelativeLayout[COLOR=#009900]([/COLOR][B]this[/B][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
ProgressBar progressBar [COLOR=#339933]=[/COLOR] [B]new[/B]ProgressBar[COLOR=#009900]([/COLOR]MainActivity.[B]this[/B],[COLOR=#000066][B]null[/B][/COLOR],android.[COLOR=#006633]R[/COLOR].[COLOR=#006633]attr[/COLOR].[COLOR=#006633]progressBarStyleLarge[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
progressBar.[COLOR=#006633]setIndeterminate[/COLOR][COLOR=#009900]([/COLOR][COLOR=#000066][B]true[/B][/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
progressBar.[COLOR=#006633]setVisibility[/COLOR][COLOR=#009900]([/COLOR][COLOR=#003399]View[/COLOR].[COLOR=#006633]VISIBLE[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
RelativeLayout.[COLOR=#006633]LayoutParams[/COLOR] params [COLOR=#339933]=[/COLOR] [B]new[/B] RelativeLayout.[COLOR=#006633]LayoutParams[/COLOR][COLOR=#009900]([/COLOR][COLOR=#CC66CC]300[/COLOR],[COLOR=#CC66CC]300[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
params.[COLOR=#006633]addRule[/COLOR][COLOR=#009900]([/COLOR]RelativeLayout.[COLOR=#006633]CENTER_IN_PARENT[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
layout.[COLOR=#006633]addView[/COLOR][COLOR=#009900]([/COLOR]progressBar,params[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
setContentView[COLOR=#009900]([/COLOR]layout[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR][/FONT]
[/FONT][/COLOR]
در کدهای بالا، نام Activity را برابر MainActivity فرض کرده ایم.

نتیجه به صورت زیر می باشد :

1101.jpg
 

P O U R I A

مدیر مهندسی شیمی مدیر تالار گفتگوی آزاد
مدیر تالار
ساخت و نمایش یک ProgressBar ، با استفاده از تگ ProgressBar در فایل xml ، به همراه دو دکمه برای نمایش و عدم نمایش ProgressBar

ساخت و نمایش یک ProgressBar ، با استفاده از تگ ProgressBar در فایل xml ، به همراه دو دکمه برای نمایش و عدم نمایش ProgressBar

در این مبحث قصد داریم که چگونگی ساخت ProgressBar با استفاده از تگ ProgressBar در فایل xml را شرح بدهیم. البته بدون تگ ProgressBar در فایل xml نیز می توان یک ProgressBar ساخت، اما در برخی موارد، وجود تگ ProgressBar در فایل xml ، به اعمال تغییرات بیشتر برای ProgressBar کمک می کند.

همچنین از دو دکمه (Button) نیز برای تعیین نمایش و عدم نمایش ProgressBar استفاده می کنیم.

در این آموزش، فرض می کنیم که لایه گرافیکی متناظر با Activity ، در فایل activity_main.xml تعریف شده است. بنابراین کدهای فایل activity_main.xml را به صورت زیر می نویسیم :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][COLOR=#339933]<[/COLOR]LinearLayout xmlns[COLOR=#339933]:[/COLOR]android[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/apk/res/android"[/COLOR]
    xmlns[COLOR=#339933]:[/COLOR]tools[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"http://schemas.android.com/tools"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
    android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
    android[COLOR=#339933]:[/COLOR]orientation[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"vertical"[/COLOR] [COLOR=#339933]>[/COLOR]
    
    [COLOR=#339933]<[/COLOR]ProgressBar
        android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/progressBar1"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"match_parent"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"100dp"[/COLOR]
        android[COLOR=#339933]:[/COLOR]indeterminate[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"false"[/COLOR] [COLOR=#339933]/>[/COLOR]

    [COLOR=#339933]<[/COLOR][COLOR=#003399]Button[/COLOR]
        android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/button1"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
        android[COLOR=#339933]:[/COLOR]text[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"visible"[/COLOR] [COLOR=#339933]/>[/COLOR]

    [COLOR=#339933]<[/COLOR][COLOR=#003399]Button[/COLOR]
        android[COLOR=#339933]:[/COLOR]id[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"@+id/button2"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_width[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
        android[COLOR=#339933]:[/COLOR]layout_height[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"wrap_content"[/COLOR]
        android[COLOR=#339933]:[/COLOR]text[COLOR=#339933]=[/COLOR][COLOR=#0000FF]"invisible"[/COLOR] [COLOR=#339933]/>[/COLOR]

[COLOR=#339933]</[/COLOR]LinearLayout[COLOR=#339933]>[/COLOR][/FONT]
[/FONT][/COLOR]
با کدهای بالا، در لایه گرافیکی، یک ProgressBar و دو دکمه (Button) تعریف کرده ایم.

نام Activity را برابر MainActivity در نظر گرفته ایم، بنابراین کدهای آن را به صورت زیر می نویسیم (کدهای فایل MainActivity.java) :
کد:
[COLOR=#000000][FONT=Tahoma][FONT=monospace][B]package[/B] [COLOR=#006699]com.kelidestan.com[/COLOR][COLOR=#339933];[/COLOR]

[B]import[/B] [COLOR=#006699]android.app.Activity[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.os.Bundle[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.view.View[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.view.View.OnClickListener[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.widget.Button[/COLOR][COLOR=#339933];[/COLOR]
[B]import[/B] [COLOR=#006699]android.widget.ProgressBar[/COLOR][COLOR=#339933];[/COLOR]

[B]public[/B] [B]class[/B] MainActivity [B]extends[/B] Activity [COLOR=#009900]{[/COLOR]
        
        [B]public[/B] ProgressBar progressBar[COLOR=#339933];[/COLOR]

        @Override
        [B]protected[/B] [COLOR=#000066][B]void[/B][/COLOR] onCreate[COLOR=#009900]([/COLOR]Bundle savedInstanceState[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
                [B]super[/B].[COLOR=#006633]onCreate[/COLOR][COLOR=#009900]([/COLOR]savedInstanceState[COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                setContentView[COLOR=#009900]([/COLOR]R.[COLOR=#006633]layout[/COLOR].[COLOR=#006633]activity_main[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                
                progressBar [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR]ProgressBar[COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]progressBar1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                
                [COLOR=#003399]Button[/COLOR] button_visible [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#003399]Button[/COLOR][COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]button1[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                button_visible.[COLOR=#006633]setOnClickListener[/COLOR][COLOR=#009900]([/COLOR][B]new[/B] OnClickListener[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
                                                 
                    @Override
                    [B]public[/B] [COLOR=#000066][B]void[/B][/COLOR] onClick[COLOR=#009900]([/COLOR][COLOR=#003399]View[/COLOR] v[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
                        progressBar.[COLOR=#006633]setVisibility[/COLOR][COLOR=#009900]([/COLOR][COLOR=#003399]View[/COLOR].[COLOR=#006633]VISIBLE[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                    [COLOR=#009900]}[/COLOR]
                [COLOR=#009900]}[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                
                [COLOR=#003399]Button[/COLOR] button_invisible [COLOR=#339933]=[/COLOR] [COLOR=#009900]([/COLOR][COLOR=#003399]Button[/COLOR][COLOR=#009900])[/COLOR] findViewById[COLOR=#009900]([/COLOR]R.[COLOR=#006633]id[/COLOR].[COLOR=#006633]button2[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                button_invisible.[COLOR=#006633]setOnClickListener[/COLOR][COLOR=#009900]([/COLOR][B]new[/B] OnClickListener[COLOR=#009900]([/COLOR][COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
                                                 
                    @Override
                    [B]public[/B] [COLOR=#000066][B]void[/B][/COLOR] onClick[COLOR=#009900]([/COLOR][COLOR=#003399]View[/COLOR] v[COLOR=#009900])[/COLOR] [COLOR=#009900]{[/COLOR]
                        progressBar.[COLOR=#006633]setVisibility[/COLOR][COLOR=#009900]([/COLOR][COLOR=#003399]View[/COLOR].[COLOR=#006633]INVISIBLE[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                    [COLOR=#009900]}[/COLOR]
                [COLOR=#009900]}[/COLOR][COLOR=#009900])[/COLOR][COLOR=#339933];[/COLOR]
                
        [COLOR=#009900]}[/COLOR]
        
[COLOR=#009900]}[/COLOR][/FONT]
[/FONT][/COLOR]
با اجرای برنامه اندروید، progressBar نماش داده می شود (در حال چرخش) :


1102.jpg

با اشاره بر روی دکمه invisible ، دیگر progressBar نمایش داده نمی شود :

1103.jpg

با اشاره بر روی دکمه visible ، دوباره progressBar نمایش داده می شود :

1102.jpg
 
بالا