آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

دستور hover در اندروید

علیرضا  7 سال پیش  7 سال پیش
0 0

سلام.

من تو css راحت میتونستم دستور hover رو اجرا کنم اما داخل اندروید نمیدونم چطوری نوشته میشه

میخوام وقتی روی یه دکمه کلیک کردم رنگش آبی بشه تا زمانی که روش hover شده و وقتی که ول کردن رنگش برگرده . باید چیکارکنم؟

 برای این سوال 1 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
ChookD1  7 سال پیش
+3 0

 پاسخ صحیح

با سلام


بصورت دستی :

در هر اکتیویتی ای یا حتی درون یک Canvas ، خیلی راحت میتونید متد onTouchEvent رو اورراید کنید ، این متد درون خودش چندین المنت داره که از قرار زیر هست : ( مثال )

 
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {

break;
}

case MotionEvent.ACTION_MOVE: {

break;
}
}

در کد بالا ، :
یک کانستراکتور ACTION_DOWN داریم که میگه ، هر وقت کاربر داشت فشار میداد و انگشتش رو صفحه لمش بود.
یک کانستراکتور ACTION_MOVE داریم که میگه : هر وقت کاربر لمش کرد و همینجور که صفحه رو لمس کرده بود داشت دستشو میکشید ، مثل ترسیم
در صورت رخ دادن هریک از موارد بالا میتونیم تعیین کنیم چه عملی انجام بشه ، برای عمل کردن بصورت دستی شاید نیاز باشه که شما یک canvas بسازید و اون رو Button اکستندز کنید ، سپس درون اون تعیین کنید که مثلا با کلیک شدن روی دکمه ، از محل لمس شده یک دایره ريال مربع یا هرچیزی توسیم بشه و تمام اون دکمه رو در بر بگیره.

شما کیسهای زیادی در اختیار دارید که که میتونید اونها رو با وارد کردن:

case MotionEvent.ACTION_

بدست بیارید ، این کیسها از قرار زیر هستند :( تمامی موارد )

 

راستش من با CSS کار نکرده ام و نمیدونم HOVER که چه کاری انجام میده ، اما جالب هست که چیزی که شما دنبال اون هستید ، یعنی HOVER در لیست ما وجود داره و احتمالا بدونید چطوری از اون استفاده کنید.

شاید نیاز هست برای صدا زدنش ، در لیستنری که برای باتن خودتون تعیین کرده اید ، اون رو فراخوانی بکنید.

 

بصورت داینامیک :

بجای اینکه Button خودتون رو setOnClickListener کنید : setOnTouchListener کنید.
همون کانستهای بالا و بلکه بسیار بیشتر رو در اختیار خواهید داشت:
بصورت زیر عمل کنید :

 
btn_YOUR_BUTTON.setOnTouchListener( new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_HOVER_ENTER:
btn_hello.setBackgroundColor(Color.GREEN);
break;

case MotionEvent.ACTION_HOVER_EXIT:
btn_hello.setBackgroundColor(Color.GREEN);
break;

case MotionEvent.ACTION_MOVE:
btn_hello.setBackgroundColor(Color.GREEN);
break;

}
return false;
}
});

اگه تونستی از این طریق کارتو پیش ببری ، نتیه رو اعلام کن و اگه ناقص و یا اشتباه بودی جایی بهمون اطلاع بده تا ما هم بتونیم Hover کنیم ^_^


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .