رفتن به مطلب

آموزش ساخت تایمر با edit text و ProgressBar


vistamobile

ارسال‌های توصیه شده

  "سلام"

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

 

 

راستی سورس در آخر پیوست شده، پس با خیال راحت کدها رو نگاه کنین

 

تو این آموزش یاد میگیریم که چجوری یه تایمر رو تو edit text  یا ProgressBar نشون بدیم. یعنی هر چی تایمر مثلا کم میشه عدد تو ادیت تکست هم کم میشه و یا حجم پروگریس بار میاد پایین:

 

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

حالا  از قسمت project باید Add new module و بعدش code module رو انتخاب کنین. تو ماژول جدید چند خط کد وجود داره که شما فقط اون کدی که زیرش خط کشیدم رو اضافه کنین :

'Code module
'Subs in this code module will be accessible from all modules.
Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
    Dim zaman As Timer
End Sub

من تو این کد گفتم که zaman برابر تایمره. حالا برین به اکتیویتی main  و ابتدا تو قسمت Globals دوتا int اضافه کنین و بعدش لی اوت رو معرفی کنین و زیر لی اوت هم تایمر رو و مقدار int  ها رو مشخص کنین :

Sub Globals
    Dim m,m1 As Int
Private EditText1 As EditText
Private ProgressBar1 As ProgressBar
End Sub

Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout ("layout1")
    time.zaman.Initialize ("time1",1000)
time.zaman.Enabled=True
m=50
m1=100
End Sub

الان ما باید تایمر رو رهم راه بندازیم پس یه sub جدید ایجاد میکنیم و مقدار دهی int ها رو برای کم و زیاد شدن زمان میدیم و بعدش هم با دوتا خط دیگه ادیت تکست و پروگرس بار رو هم معرفی میکنیم :

Sub time1_tick
 m = m - 1
 m1 = m1  -2
 EditText1.Text = m
 ProgressBar1.Progress = m1
 End Sub

تمام!!!  الان ما یه زمان سنج داریم که از پنجاه ثانیه شروع میشه و به صفر میرسه و در این مدتی که داره میشمره، مقدار رو تو پروگرس بار بصورت گرافیکی و تو ادیت تکست بصورت عددی مشاهده میکنیم :

 

Screenshot_%DB%B2%DB%B0%DB%B1%DB%B5_%DB%

 

این سورس خیلی کاربردیه مثلا برای وقتی که یه بازی میسازین یا برای برنامه کرنومتر و زمان سنج و ... بسته به سلیقه و خلاقیت خودتون.مثلا میتونین یه لیست ویو اضافه کنین و با فشردن باتون اعداد رو ثبت کنین ( کرنو متر) و یا بجای ادیت تکست از یه لیبل زیبا با فونت فارسی استفاده کنین. این سورس خامه و خودتون دستکاری کنین. مثلا زمان سنج تموم میشه ولی ادیت تکست همینطور منفی میره پایین!! که کافیه تایمر رو لیمیت بدین. 

رمز فایل پیوست شده : www.basic4android.org

vista_time.rar

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 4 ماه بعد...

فوق العاده بود..... فقط یه سوال ( چی کنم که وقتی edit text = 45 شد گوشی beep بزنه ؟

میتونید از MediaPlayer استفاده کنید و یک صدای Beep رو Load و Play کنید 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام. کد پخش صدا اینجوریه :

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	Dim mp As MediaPlayer
	Private Button5 As Button

End Sub

بعدش هم :

 

 

پلیر رو نسب میکنیم :

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("Layout1")
    mp.Initialize2("mp")
	mp.Load(File.DirAssets, "AssetMusic_Commons_Pirates.mp3")
	mp.Play
	mp.Looping=True
	
End Sub

اون AssetMusic_Commons_Pirates.mp3 صدای منه . این واسه پخش موسیقیه. خوب؟ حالا میخوای وقتی رسید به 45 صدا پخش کنه؟ خوب این دوتا رو بردار:

	mp.Play
	mp.Looping=True

حالا تو ساب تایمرت بزن :

Sub time1_tick

 m1 = m1  -2
 If m1 = 45 Then
 mp.Play
 End If
 End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 هفته بعد...
حالا تو ساب تایمرت بزن : Sub time1_tick   m1 = m1 -2 If m1 = 45 Then mp.Play End If End Sub

 

 

من اینو زدم اما به جای mp.play اومدم متن ادیت تکست رو مساوی صفر کردم اما برای یک ثانیه صفر میشه و بعد دیگه دوباره شمارش معکوس شروع میشه.

چی کنم. 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...