آموزش تغییر رنگ آیکون های ریسورس (Drawable) در زمان اجرای برنامه – اندروید

آموزش تغییر رنگ آیکون های ریسورس (Drawable) در زمان اجرای برنامه – اندروید
تغییر رنگ آیکون به صورت رئال تایم و در زمان اجرای برنامه


ممکن است آیکونی با یک رنگ خاص، مثلا سفید را در پوشه‌ی ریسورس پروژه‌ی خود قرار دهیم؛ اما زمانی که از این آیکون استفاده می‌کنیم، همیشه یک رنگ ثابتی دارد و اگر بخواهیم رنگ آن در مکان‌های مختلف متفاوت باشد، گرچه این کار را با کپی آیکون و ذخیره‌ی آن در یک رنگ دیگر می‌توانیم انجام دهیم؛ ولی بدیهی است که با انجام این‌کار، حجم فایل نصبی زیاد می‌شود؛ چرا که منابع شما زیاد شده است! پس بهتر است که به جای این روش، از یک روش منطقی استفاده کنیم!

مراحل انجام کار

کدهای زیر را با فرض این‌که در یک Activity و در متد onCreate قرار داریم، می‌نویسیم.
ابتدا یک Drawable از ریسورس می‌گیریم:

Drawable drawable = .getResources().getDrawable(R.drawable.ic_fullkade);

روش اول تغییر رنگ:
در این‌جا، رنگ را از کلاس Color تنظیم می‌کنیم:

drawable.setColorFilter(new PorterDuffColorFilter(Color.GREEN, PorterDuff.Mode.SRC_IN));

روش دوم تغییر رنگ:
در این‌جا، رنگ را از از رنگ‌های فایل XML موجود در res/values/colors.xml ریسورس تنظیم می‌کنیم:

drawable.setColorFilter(new PorterDuffColorFilter(resources().getColor(R.color.primary), PorterDuff.Mode.SRC_IN));

حالا برای مثال این Drawable را در یک ImageView تنظیم می‌کنیم:

ImageView image = (ImageView) root.findViewById(R.id.image);
image.setImageDrawable(drawable);

 

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

cp-codfk

نظرات ثبت شده بدون دیدگاه

توضیحات پیشنهادی نظرات اشتراک