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

چگونه میتوان یک Custom Control از نوع دکمه با امکان انجام عملیات های مختلف بدون استفاده از LinearLay ...

Mahdi.Esb  10 سال پیش  10 سال پیش
0 0

با سلام خدمت تمامی دوستان


قصد من این هستش که یک دکمه کاستوم و جدید بسازم که هنگامی که روش کلیک میشه یک انیمیشن رو انجام بده اگر بخام برای دکمه ها دونه دونه کد نویسی کنم باید برای هر دکمه یه چنین کدی رو بنویسم :

btnforget.setOnTouchListener(new View.OnTouchListener() {
public Animation ClickAnimation ;
public Animation ClickBackAnimation ;
public boolean onTouch(View view, MotionEvent motionEvent) {
boolean played = false;
ClickAnimation=AnimationUtils.loadAnimation(Login.this,R.anim.btn_click_animation);
ClickBackAnimation=AnimationUtils.loadAnimation(Login.this,R.anim.btn_clickback_animation);
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
if (!played)
ClickAnimation.setFillAfter(true);
btnforget.startAnimation(ClickAnimation);
played = true;
break;
case MotionEvent.ACTION_UP:
ClickBackAnimation.setFillAfter(true);
btnforget.startAnimation(ClickBackAnimation);
played = false;
break;
}
return false;
}});

طبعا این کد خیلی زیاده و اگر برای هر دکمه بخوام بنویسم واقعا زمان گیره و به برنامه فشار میاره

‍  پس تصمیم گرفتم یک دکمه Custom view بسازم منتها مشکل اینه:

طبق آموزش استاد من دکمه رو از Linear Layout که یک نوع ViewGroup هست Extend کردم اما قصد من این هستش که اون رو از Button که یک View هست Extend کنم . به علت اینکه نمیتونم به راحتی به دکمه دسترسی داشته باشم و برای تغییر تکست روی دکمه و .... باید کد بنویسم اما اگر از Button اکستند بشه میتونم توسط Xmlخاصیت های کنترل خودم رو تغییر بدم

 مشکل اینه که توی Layout Inflater از من یک ViewGroup میخاد که توی آموزش ها استاد خود کنترل که یک نوع ViewGroup بود رو قرار میدادن اما الان که کنترل ما یک نوع View هستش Inflate کردن اون روی خودش ممکن نیست

از دوستان خواهش دارم که نحوه ی ساختن چنین کنترلی و مخصوصا نحوه ی Inflate کردن اون توسط Layout inflater رو توضیح بدن. با تشکر  

اگر سوال خیلی سنگین بود یا اینکه بد توضیح داده شد معذرت میخام بگید که کامل تر توضیح بدم باز هم ممنون از شما دوستان

0 0
up (10 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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