سبد (0)

کار با color در اندروید

کار با color در اندروید

یک روشی که عموماً برای تعریف رنگ مورد استفاده قرار می گیرد این است که مستقیماً کد رنگ را در محل دلخواه ذخیره کرد.  اما این روش یک اشکال دارد و آن این است که مثلا اگر 20 عنصر در برنامه را بخواهیم به یک رنگ خاص دربیاوریم، باید برای آن 20 عنصر، کد رنگ را در هنگام تعریف آنها، بنویسیم، اما فرض کنید که ناگهان به این نتیجه برسیم که رنگ انتخاب شده مناسب نیست و بخواهیم رنگ آن 20 عنصر را به رنگی دیگر تغییر بدهیم. بنابراین این نوع تعریف رنگ برای عناصر مختلف برنامه اندروید، دردسرهای زیادی دارد. در این مبحث می خواهیم که راه حل این مشکل را بیان کنیم تا شما بتوانید در یک فایل مشخص، تعدادی رنگ تعریف کنید و سپس برای عناصر مختلف برنامه اندروید، تنها به نام آن رنگ ها ارجاع بدهید و هر زمان هم که بخواهید، تنها با ویرایش آن فایل، می توانید رنگ تمامی عناصری که به آن رنگ ارجاع داده اند را تغییر بدهید.

برای تعریف یک یا چند رنگ در برنامه اندروید، ابتدا باید در پوشه بندی پروژه اندروید، در پوشه values ، یک فایل xml با نام colors.xml بسازید.

سپس در فایل colors.xml ، کدهای زیر را می نویسیم :

 

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="color_1">#f2b32a</color>
    <color name="color_2">#ffb21c</color>
</resources>

مشاهده می کنید که دو رنگ با نام های color_1 و color_2 تعریف کرده ایم.

اکنون فرض کنید که بخواهیم رنگ پس زمینه یک عنصر را به صورت رنگ red_1 تعیین کنیم، برای این منظور، در فایل xml ای که آن عنصر تعریف شده است، در میان کدهای تعریف آن عنصر، کد زیر را می نویسیم :

 

android:background=@color/color_1

یا اگر بخواهیم که با کدهای java ، به رنگ red_1 ارجاع بدهیم، باید کدهای زیر را بنویسیم :

 

getResources().getColor (R.color.color_1)

به عنوان مثال، فرض کنید که یک TextView با id برابر textView1 داریم و می خواهیم که رنگ متن نمایش داده شده در آن، برابر رنگ color_1 تعیین شود، برای این منظور، در میان کدهای java ، کدهای زیر را می نویسیم :

 

TextView tv = (TextView) findViewById(R.id.textView1);
tv.setTextColor(getResources().getColor(R.color.color_1));

در تصویر زیر انواع رنگ ها با کدهای هگزادسیمال آنها آورده شده است.

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه