آموزش برنامه نویسی اندروید (Android)
۴۱۹ آموزش
نمایش دسته بندی ها (۴۱۹ آموزش)

تعریف یک یا چند رنگ (color) در پروژه اندروید و استفاده از آنها برای عناصر مختلف در برنامه اندروید

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

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

تعریف یک یا چند رنگ (color) در پروژه اندروید و استفاده از آنها برای عناصر مختلف در برنامه اندروید

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


<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="red_1">#ffff0000</color>
    <color name="red_2">#ffa00000</color>
</resources>

مشاهده می کنید که دو رنگ با نام های red_1 و red_2 تعریف کرده ایم. هر دو، به رنگ قرمز می باشند، اما دومی تیره تر است.

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


android:background="@color/red_1"

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


getResources().getColor(R.color.red_1)

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


TextView tv = (TextView) findViewById(R.id.textView1);
tv.setTextColor(getResources().getColor(R.color.red_1));
نویسنده علیرضا گلمکانی
شماره کلید 346
گزینه ها
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 0 0 0

ارسال نظر جدید (بدون نیاز به عضو بودن در وب سایت)