تغییر رنگ ایکون ها مثل فیسبوک(حل شد)
مدیریت گفتگو
سلام بچه ها ...
دوستان من توی یه برنامه ای از imageView استفاده کردم که رو هرکدوم کلیک بشه یه فرگمنت رو باز میکنه اوکی..
حالا میخوام با کلیک روی هرکدوم از این عکسا رنگش عوض شه ... مثلا حالا مشکیه میخوام ابی بشه ... من از این کد
استفاده کردم ولی چیزی که میخواستم نشد... من میخوام رو هرکدوم کلیک بشه رنگ عکس قبلیش بپره (به حالت اولش برگرده) .. اوکی؟
دقیقا مث فیسبوک ... راهی رو پیشنهاد میکنید؟ ممنون اینم کدی که استفاده کردم.
این تصویر برنامه اس که هنوز کامل نشده ..
public boolean state;
state =! state;
if(state){
img_pay.setImageResource(R.drawable.ch_pay);
}else{
img_pay.setImageResource(R.drawable.pay);
}
پاسخها 5
مشاهده پاسخ صحیحسلام میتونید از روش زیر استفاده کنید.
اول توی فایل xml یه ImageView تعریف کنید و با استفاده از src یه drawable رو بهش بدید ( از background استفاده نکنید ) مثلا :
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:src="@drawable/ic_insert"
android:id="@+id/img_insert"
/>
بعدش با استفاده از جاوا میتونید به شکل داینامیک عوضش کنید
int color = Color.parseColor("#1565C0");
ImageView imageView = (ImageView) findViewById(R.id.img_insert);
Drawable drawable = ContextCompat.getDrawable(context, R.drawable.ic_insert);
ColorFilter filter = new LightingColorFilter(color, color);
drawable.setColorFilter(filter);
imageView.setImageDrawable(drawable);
یه مقدار هم میتونید تغیرش بدید و به شکل متد در بیاریدش و راحت ازش استفاده کنید
نظرات
شما می تونید با درست کردن متد زیر خیلی راحت اینکارو انجام بدین: (مثلا شما آی دی ایمیج هارو myImage1 و myImage2 و myImage3 و myImage4 گذاشتید)
void myMethod(ImageView img , int i){
myImage1.setImageResource(R.drawable.image1_false);
myImage2.setImageResource(R.drawable.image2_false);
myImage3.setImageResource(R.drawable.image3_false);
myImage4.setImageResource(R.drawable.image4_false);
if(i == 1) {
img.setImageResource(R.drawable.image1_true);
}else if(i == 2) {
img.setImageResource(R.drawable.image2_true);
}else if(i == 3) {
img.setImageResource(R.drawable.image3_true);
}else if(i == 4) {
img.setImageResource(R.drawable.image4_true);
}
}
حالا تو SetOnClick هر ایمیج می تونید این کد کوتاه رو بذارید:
myMethod(myImage1,1);
نظرات
بهترین راه همین عوض کردن عکس هست. به نظرم اصلا دنبال این نرین که بخواین رنگ رو تغییر بدین. از هر عکسی 2 نسخه داشته باشین (مثلا یکی آبی یکی مشکی ) واس موقعیت های مختلف عوض ـش کنین. مثل جوابی که آقای وحید دادن.
نظرات
می تونید از کد زیر استفاده کنید :
وقتی روی آیکون دیگه کلیک میکنی یکبار دویاره فیلتر رو به رنگ پیشفرض تغییر بده بعد دوباره آبی کن
img_pay.setColorFilter(Color.BLUE);
نظرات
img_global.setColorFilter(Color.parseColor("#42A5F5"));
img_pay.setColorFilter(Color.parseColor("#BDBDBD"));
img_add.setColorFilter(Color.parseColor("#BDBDBD"));
img_menu.setColorFilter(Color.parseColor("#BDBDBD"));
نظرات
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
نظرات