View Full Version : رنگ کردن button ها ؟
AVR programmer
شنبه 30 مرداد 1395, 00:27 صبح
توی همون برنامه ماشین حساب 16 تا باتن دارم که می خوام توی هر theme یه رنگی داشته باشن اما میخوام بدونم برای جلوگیری از بازنویسی کدها چطوری باید رنگشون کنم مثلا اگه بخوام از setBackgroundColor استفاده کنم باید چکار کنم ؟
tux-world
شنبه 30 مرداد 1395, 09:21 صبح
خوب از استایل میتونی استفاده کنی. تو xml تعریف کن هر موقع میخایی ست کن. درست نمیفهمم. کودوم برنامه ماشین حساب؟
msroid
شنبه 30 مرداد 1395, 15:45 عصر
سلام
شما میتونید یه Custom Button بسازید و از اون استفاده کنید. و وقتی هم که خواستید رنگ بک گراند رو عوض کنید کافیه رنگ بک گراند رو در اون کلاس تغییر بدید.
public class MyButton extends Button{
//...
}
AVR programmer
شنبه 30 مرداد 1395, 17:37 عصر
خوب از استایل میتونی استفاده کنی. تو xml تعریف کن هر موقع میخایی ست کن. درست نمیفهمم. کودوم برنامه ماشین حساب؟
ببخشید میشه بیشتر توضیح بدین من کاملا مبتدی هستم
این برنامه رو میگم :
http://barnamenevis.org/showthread.php?528749-%D9%85%D8%B4%DA%A9%D9%84-%D8%A8%D8%A7-%D8%AC%D8%A7%D8%A8%D8%AC%D8%A7%DB%8C%DB%8C-%D8%AF%DB%8C%D8%AA%D8%A7-%D8%A8%DB%8C%D9%86-%D8%AF%D9%88-Activity
AVR programmer
شنبه 30 مرداد 1395, 19:19 عصر
سلام
شما میتونید یه Custom Button بسازید و از اون استفاده کنید. و وقتی هم که خواستید رنگ بک گراند رو عوض کنید کافیه رنگ بک گراند رو در اون کلاس تغییر بدید.
public class MyButton extends Button{
//...
}
ببخشید میشه لطفا بیشتر توضیح بدین:لبخندساده:
msroid
یک شنبه 31 مرداد 1395, 23:31 عصر
یه کلاس کاستوم به صورت زیر ایجاد میکنید:
public class MyButton extends Button {
public static String color = ";
public MyButton(Context context) {
super(context);
changeBgColor();
}
public MyButton(Context context, AttributeSet attrs) {
super(context, attrs);
changeBgColor();
}
public MyButton(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
changeBgColor();
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public MyButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
changeBgColor();
}
public void changeBgColor() {
if (!color.isEmpty())
setBackgroundColor(Color.parseColor("#" + color));
}
}
بعدش در در قسمت دیزاین لایوت از قسمت customview یه دکمه با نام همون کلاس ساخته شده و وجود داره و اونو روی لایوت قرار میدین(هر چند تا که خواستین). و مثل یه دکمه ازش استفاده میکنین:
MyButton btn = (MyButton) findViewById(R.id.view1);
MyButton btn2 = (MyButton) findViewById(R.id.view2);
.
.
.
btn.color = "ff0000"; // the color is red
حالا هر تعداد از این دکمه ها هم که باشن وقتی یکی رو تغییر میدی بقیه هم تغییر میکنن.
AVR programmer
دوشنبه 01 شهریور 1395, 18:17 عصر
با تشکر از msroid عزیز . این کد رو که گفتین در یک کلاس جدید به اسم myButton تعریف کردم اما ارورهای زیر رو مید:
142111
142112
msroid
سه شنبه 02 شهریور 1395, 00:01 صبح
شما این کدها رو کپی پیست نکنید. کلاس مورد نظرتون رو بسازید و اونو از کلاسButton اکستندز (extends) کنید. اگر از اندروید استودیو استفاده می کنید خودش بهتون ارور میده و وقتی روی خط اون ارور باشید و Alt+Enter رو بزنید میتونید تمام سازنده های اون رو اضافه کنید.
بعدش فقط اون متد changeBgColor رو کپی پیست کنید. و در تمام سازنده های اونو صدا بزنید.
AVR programmer
سه شنبه 02 شهریور 1395, 17:10 عصر
شما این کدها رو کپی پیست نکنید. کلاس مورد نظرتون رو بسازید و اونو از کلاسButton اکستندز (extends) کنید. اگر از اندروید استودیو استفاده می کنید خودش بهتون ارور میده و وقتی روی خط اون ارور باشید و Alt+Enter رو بزنید میتونید تمام سازنده های اون رو اضافه کنید.
بعدش فقط اون متد changeBgColor رو کپی پیست کنید. و در تمام سازنده های اونو صدا بزنید.
ببخشید من برنامه شما رو می فهمم که از چند تا متد سازنده (constructor) تشکیل شده ولی فیلدها رو اصلا نمیفهمم یعنی چی ؟ مثلا contex یعنی چی یا مثلا AttributeSet attrs ؟
spiderman200700
پنج شنبه 04 شهریور 1395, 13:46 عصر
ببخشید من برنامه شما رو می فهمم که از چند تا متد سازنده (constructor) تشکیل شده ولی فیلدها رو اصلا نمیفهمم یعنی چی ؟ مثلا contex یعنی چی یا مثلا AttributeSet attrs ؟
مشکل شما عدم تسلط به زبان جاوا و فریمورک اندروید هست. باید به زبان جاوا مسلطتر بشید و کتابخانه اندروید رو هم کاملتر بررسی کنید تا راحت تر بتونید کد ها رو درک کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.