یک برنامه آموزش پیانو ساختم همه چیزش کار می کنه ولی می خوام وقتی رو دکمه استارت کلیک شد یکی از دکمه های پیانو (که خودم مشخص کنم کدام دکمه) به یه رنگی دربیاد و وقتی کاربر روی اون دکمه ای که رنگی شده لمس کنه یکی دیگه از دکمه های پیانو (که خودم مشخص کردم) به اون رنگ دربیاد و همین طور ادامه پیدا کنه.ممنون میشم اگه کمکم کنیدو یک مثال بزنید(هر چند کوتاه باشه) + کدهاش. خواهش می کنم
کمک در ساخت یک برنامه اندروید (برنامه آموزش پیانو)
|
||||||
کمک در ساخت یک برنامه اندروید (برنامه آموزش پیانو)کمک در ساخت یک برنامه اندروید (برنامه آموزش پیانو)کمک در ساخت یک برنامه اندروید (برنامه آموزش پیانو)
۱۳۹۴/۰۵/۳۱, ۰۶:۱۶ ق.ظ
آموزش نواختن پیانو مثل اکثر نرم افزارهای آموزش پیانو.آموزش اینطور است که، برای مثال ما 3 تا دکمه به نام های: نت1، نت2، نت3 و یک دکمه به نام:استارت داریم.وقتی کاربر روی دکمه ی "استارت" کلیک کنه رنگ متن دکمه "نت1" به رنگ آبی دربیاد، حالا وقتی کاربر دکمه "نت 1" رو لمس کنه متن دکمه "نت2" به رنگ آبی دربیاید من در اینجا می خوام وقتی کاربر دکمه "نت2" رو لمس کرد متن دکمه " نت1" آبی بشه و وقتی کاربر دکمه "نت1" رو لمس کرد اینبار به جای آبی شدن متن دکمه"نت2" متن دکمه "نت3" آبی بشه
خلاصه بالا: کلیک دکمه استارت>آبی شدن متن دکمه"نت1">لمس دکمه "نت1">آبی شدن متن دکمه "نت2">لمس دکمه "نت2">آبی شدن متن دکمه "نت1">لمس دکمه "نت1">آبی شدن متن دکمه "نت3" خواهش می کنم کمکم کنید لطفا کمک در ساخت یک برنامه اندروید (برنامه آموزش پیانو)کمک در ساخت یک برنامه اندروید (برنامه آموزش پیانو)
فکر میکنم شما باید از هندلر استفاده کنید طبق کل آهنگ چند هندلر بسازید و مشخص کنید که در هر زمان چه دکمه هایی به رنگ دلخواهتون دربیاد دقت کن هندلر ها مانند یه زمان سنج هستند یعنی اگر زمان مثلا دو ثانیه را وارد کنی هندلر دو ثانیه بعد از کلیک بر روی دکمه کد ها را اجرا میکند شما باید چند هندلر برای هر مقدار زمانی بسازی اما این جا یه سوال پیش میاد اگر هندلر مثلا بعد دو ثانیه رنگ دکمه را آبی کرد چه این رنگ آبی از بین نمی رود پس باید یه اندیشه ایی شود من این اندیشه را قبلا برای یه برنامه خودم کردم ببین شما در هندلر اول میگی که مثلا رنگ دکمه X را آبی کن و در هندلر بعد باید بگی اول رنگ دکمه X را برگردون مثلا سفیدش کن بعد رنگ دکمه Y را آبی کن من در پایین یک برنامه ساده کم حجم درست کردم با هندلر که می تونی دریافتش کنی روش کار هندلر ها رو ببینی این برنامه ممثلا می خواهد عملیاتی که طول میکشد را انجام دهد و سه متن "انتظار..." نمایش داده می شود که زمان بندی نمایان شدن و پنهان شدن با هندلر انجام شده حتما برنامه رو دریافت کن تا درک بهتری داشته باشی این هم کد هندلر هست(دقت کن اون زمان مشخص میکند که کد ها بعد از زمان مشخص شده اجرا شود):
کد پیاچپی: boolean one = new Handler().postDelayed(new Runnable() { لینک برنامه 225 کیلوبایت: http://s3.picofile.com/file/8207725426/M...t.apk.html موفق باشی سوالی داشتی در خدمتیم
Better then Best
کمک در ساخت یک برنامه اندروید (برنامه آموزش پیانو)کمک در ساخت یک برنامه اندروید (برنامه آموزش پیانو)کمک در ساخت یک برنامه اندروید (برنامه آموزش پیانو)
۱۳۹۴/۰۶/۰۱, ۰۷:۱۲ ق.ظ
من از کد زیر استفاده کردم، تا اول هندلر one اجرا بشه و بعد هندلر one1.ولی اول هندلر one1 اجرا شد تازه هندلر one هم اجرا نشد
اینم کد final Button bu1=(Button)findViewById(R.id.no1); final Button bu2=(Button)findViewById(R.id.no2); bu1.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View p1, MotionEvent p2){ switch(p2.getActionMasked()){ case MotionEvent.ACTION_DOWN: mp11=MediaPlayer.create(MainActivity.this,R.raw.sol1); mp11.start(); mp11.setLooping(true); mp11.setVolume(100,100); break; case MotionEvent.ACTION_UP: mp11.stop(); mp11.release(); break; }return true; } }); bu2.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View p1, MotionEvent p2){ switch(p2.getActionMasked()){ case MotionEvent.ACTION_DOWN: mp1=MediaPlayer.create(MainActivity.this,R.raw.la1); mp1.start(); mp1.setLooping(true); mp1.setVolume(100,100); break; case MotionEvent.ACTION_UP: mp1.stop(); mp1.release(); break; } return true; } }); boolean one = new Handler().postDelayed(new Runnable() { @Override public void run() { //کد های اجرایی را که رنگ دکمه را آبی میکند را اینجا بنویسید bu1.setTextColor(Color.BLUE); } }, //زمان اجرا به میلی ثانیه 2000); boolean one2 = new Handler().postDelayed(new Runnable() { @Override public void run() { //کد های اجرایی را که رنگ دکمه را آبی میکند را اینجا بنویسید bu1.setTextColor(Color.WHITE); bu2.setTextColor(Color.RED); } }, //زمان اجرا به میلی ثانیه 2000);
| ||||||
کاربران در حال بازدید این موضوع: 1 مهمان