آموزش اندروید فصل سوم قسمت دهم – ProgressBar

آموزش برنامه نویسی اندروید فصل سوم

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

آموزش اندروید فصل سوم قسمت دهم – نوار پیشرفت

توجه : برای مشاهده تصاویر در سایز اصلی برروی آنها کلیک کنید.

ابزار نمایش ProgressBar

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

برای درک بیشتر یک پروژه با نام View2Prj ایجاد کرده و در فایل activity_main.xml یک شی progressBar به صورت زیر ایجاد میکنیم

حال در فایل MainActivity.java چنین کدنویسی میکنیم

حال برنامه را اجرا کرده و نتیجه را مطابق شکل زیر ببینید

آموزش کاربردی اندروید-قسمت بیست و هشتم

خواهید دید که پس از ۵ ثانیه ProgressBar ناپدید خواهد شد.

روش کار

حالت پیشفرض این شی به صورت indeterminate است(به صورت یک دایره در حال چرخش).این حالت برای زمانی مناسب است که زمان مشخصی برای پایان کار در نظر نگرفته باشیم برای مثال زمانی که اطلاعاتی را به یک وب سرور ارسال و منتظر دریافت پاسخ آن هستیم.اگر تنها از شی ProgressBar استفاده کنیم و دستوری در فایل جاوا برای پایان آن ننویسیم این شی  مدام در حال چرخش خواهد بود.

هنگامی که برنامه اجرا میشود سیستم یک Thread از اجرا برای برنامه بنام main ایجاد میکند.این Thread بسیار مهم است چرا که آن مسئول انتقال Eventها به ابزارهای رابط کاربری مناسب مانند Event مربوط به نقاشی است 

پس ما کدی را به فایل جاوای پروژه برای متوقف کردن آن درنظر گرفته ایم که از یک Thread جهت شبیه سازی یک عملیات در پس زمینه استفاده میکند.برای اینکار نیز از یک Thread و یک شی Runnable استفاده کرده ایم.متد ()run اجرای Thread را به عهده دارد که دراین مثال از متد ()doSomeWork برای شبیه سازی عملیات استفاده شده.بعد از اینکه شبیه سازی تمام شد(پس از ۵ ثانیه)از یک شی Handler برای ارسال یک پیام به Thraed جهت توقف ProgressBar استفاده میکنیم

وقتی عملیات تمام شد خصوصیت Visibility  ابزار ProgressBar را برابر view.GONE(مقدار ۸) قرار میدهیم تا از نظرها پنهان شود.تفاوتی که بین مقدار INVISIBLE و GONE وجود دارد این است که وقتی از INVISIBLE استفاده میکنیم ProgressBar تنها پنهان میشود ولی همچنان فضایی را که در اکتیویتی اشغال کرد بود در تصرفش است.اما زمانی که از GONE استفاده میشود دیگر دراکتیویتی نیز نخواهد بود.

سفارشی سازی ProgressBar

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

تنها مقدار style را برای تغییر ظاهر این شی اضافه کردیم حال در فایل MainActivity.java نیز خطوط پررنگ شده را اضافه میکنیم

برنامه را اجرا کرده و نتیجه را مطابق تصویر زیر مشاده کنید و خواهید دید وقتی به ۵۰درصد رسید محو میشود

آموزش کاربردی اندروید-قسمت بیست و هشتم

روش کار

برای نمایش ProgressBar در حالت عمودی نیز تنها کافی است در خصوصیت style از vertical استفاده کنیم

علاوه بر این حالات میتوان از ثابت های زیر استفاده کرد و نتیجه گرفت:

  • ProgressBar.Horizoontal
  • ProgressBar.Vertical
  • ProgressBar.Large
  • ProgressBar.Inverse
  • ProgressBar.small.Inverse
  • ProgressBar.Large.Inverse

برای نمایش پیشرفت عملیات متد ()setProgress را فراخوانی و یک عدد که نشان دهنده مقدار پیشرفت است به آن ارسال میکنیم

در این مثال محدوده ۰تا ۲۰۰ قابل درج است(به وسیله متد ()setMax حداکثر مقدرا را مشخص میکنیم)اما همانگونه که مشاهده کردید شی به محض اینکه به وسط کار برسد ناپدید میشود(در حالی که هنوز متد ()doSomeWork فراخوانی میگردد و progressStatus کمتر از صد است)برای اینکه مطمین شویم که ProgressBar تا انتها میرود و ۱۰۰در صد تکمیل میشود مقدار حداکثر را برابر ۱۰۰ قرار میدهیم ویا حلقه را به صورت زیر تا ۲۰۰ تکرار میکنیم

مدرس : خانم مهندس داودی نژاد

آموزش اندروید فصل سوم قسمت نهم

آموزش اندروید فصل سوم قسمت یازدهم

درباره نویسنده

مطالب مرتبط

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *