انواع منابع بیشتر

این صفحه انواع منابع زیر را تعریف می کند که می توانید آنها را خارجی کنید:

بول
منبع XML که دارای یک مقدار بولی است.
رنگ
منبع XML که دارای یک مقدار رنگ (یک رنگ هگزادسیمال) است.
بعد
منبع XML که دارای یک مقدار بعد (با یک واحد اندازه گیری) است.
شناسه
منبع XML که یک شناسه منحصر به فرد برای منابع و اجزای برنامه ارائه می کند.
عدد صحیح
منبع XML که دارای یک مقدار صحیح است.
آرایه عدد صحیح
منبع XML که آرایه ای از اعداد صحیح را فراهم می کند.
آرایه تایپ شده
منبع XML که یک TypedArray ارائه می‌کند (که می‌توانید از آن برای آرایه‌های ترسیمی استفاده کنید).

بول

یک مقدار بولی که در XML تعریف شده است.

توجه: bool یک منبع ساده است که با استفاده از مقدار ارائه شده در ویژگی name ، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع bool را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources> ترکیب کنید.

محل فایل:
res/values/ filename .xml
نام فایل دلخواه است. name عنصر <bool> به عنوان شناسه منبع استفاده می شود.
مرجع منبع:
در جاوا: R.bool. bool_name
در XML: @[ package :]bool/ bool_name
نحو:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool
        name="bool_name"
        >[true | false]</bool>
</resources>
عناصر:
<resources>
مورد نیاز. این گره ریشه است.

هیچ ویژگی

<bool>
یک مقدار بولی: true یا false .

ویژگی ها:

name
رشته . نامی برای مقدار bool. این به عنوان شناسه منبع استفاده می شود.
مثال:
فایل XML ذخیره شده در res/values-small/bools.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <bool name="screen_small">true</bool>
    <bool name="adjust_view_bounds">true</bool>
</resources>

کد برنامه زیر، Boolean را بازیابی می کند:

کاتلین

val screenIsSmall: Boolean = resources.getBoolean(R.bool.screen_small)

جاوا

Resources res = getResources();
boolean screenIsSmall = res.getBoolean(R.bool.screen_small);

طرح XML زیر از Boolean برای یک ویژگی استفاده می کند:

<ImageView
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:src="@drawable/logo"
    android:adjustViewBounds="@bool/adjust_view_bounds" />

رنگ

یک مقدار رنگ تعریف شده در XML. رنگ با استفاده از مقدار RGB و کانال آلفا مشخص می شود. می توانید از منبع رنگی در هر مکانی که مقدار رنگ هگزادسیمال را می پذیرد استفاده کنید. همچنین می‌توانید زمانی که منبع قابل ترسیم در XML مورد انتظار است، از یک منبع رنگی مانند android:drawable="@color/green" استفاده کنید.

مقدار همیشه با یک کاراکتر پوند (#) شروع می شود که به دنبال آن اطلاعات آلفا-قرمز-سبز-آبی در یکی از قالب های زیر قرار می گیرد:

  • # RGB
  • # ARGB
  • # RRGGBB
  • # AARRGGBB

توجه: رنگ یک منبع ساده است که با استفاده از مقدار ارائه شده در ویژگی name ، نه از نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع رنگی را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources> ترکیب کنید.

محل فایل:
res/values/colors.xml
نام فایل دلخواه است. name عنصر <color> به عنوان شناسه منبع استفاده می شود.
مرجع منبع:
در جاوا: R.color. color_name
در XML: @[ package :]color/ color_name
نحو:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color
        name="color_name"
        >hex_color</color>
</resources>
عناصر:
<resources>
مورد نیاز. این گره ریشه است.

هیچ ویژگی

<color>
رنگی که به صورت هگزادسیمال بیان می شود.

ویژگی ها:

name
رشته . نامی برای رنگ این به عنوان شناسه منبع استفاده می شود.
مثال:
فایل XML ذخیره شده در res/values/colors.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <color name="translucent_red">#80ff0000</color>
</resources>

کد برنامه زیر منبع رنگ را بازیابی می کند:

کاتلین

val color: Int = resources.getColor(R.color.opaque_red)

جاوا

Resources res = getResources();
int color = res.getColor(R.color.opaque_red);

طرح XML زیر رنگ را به یک ویژگی اعمال می کند:

<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="@color/translucent_red"
    android:text="Hello"/>

بعد

یک مقدار بعد تعریف شده در XML. یک بعد با یک عدد و سپس یک واحد اندازه گیری مشخص می شود، مانند 10px، 2in، یا 5sp. واحدهای اندازه گیری زیر توسط اندروید پشتیبانی می شوند:

dp
پیکسل های مستقل از چگالی: یک واحد انتزاعی که بر اساس چگالی فیزیکی صفحه است. این واحدها نسبت به یک صفحه نمایش 160 dpi (نقطه در اینچ) هستند که در آن 1 dp تقریباً برابر با 1 پیکسل است. هنگام اجرا بر روی صفحه نمایش با تراکم بالاتر، تعداد پیکسل های مورد استفاده برای ترسیم 1 dp با ضریب مناسب برای dpi صفحه نمایش افزایش می یابد.

به همین ترتیب، وقتی روی یک صفحه نمایش با چگالی کمتر، تعداد پیکسل های استفاده شده برای 1 dp کوچک می شود. نسبت dps به پیکسل با تراکم صفحه تغییر می کند، اما نه لزوما به نسبت مستقیم. استفاده از واحدهای dp به جای واحدهای px راه حلی برای تغییر اندازه ابعاد نمای در طرح بندی شما برای تراکم های مختلف صفحه نمایش است. این یکپارچگی برای اندازه های دنیای واقعی عناصر UI شما در دستگاه های مختلف فراهم می کند.

sp
پیکسل‌های مستقل از مقیاس - این مانند واحد dp است، اما با توجه به ترجیح اندازه فونت کاربر نیز مقیاس‌بندی می‌شود. توصیه می شود هنگام تعیین اندازه فونت از این واحد استفاده کنید، بنابراین آنها برای تراکم صفحه و ترجیح کاربر تنظیم می شوند.
pt
امتیاز: 1/72 اینچ بر اساس اندازه فیزیکی صفحه، با فرض تراکم صفحه نمایش 72 dpi.
px
پیکسل ها: مربوط به پیکسل های واقعی روی صفحه است. استفاده از این واحد را توصیه نمی‌کنیم، زیرا نمایش واقعی می‌تواند در دستگاه‌ها متفاوت باشد. دستگاه‌های مختلف می‌توانند تعداد پیکسل‌های متفاوتی در هر اینچ داشته باشند و ممکن است تعداد پیکسل‌های بیشتری یا کمتری روی صفحه نمایش داشته باشند.
mm
میلی متر: بر اساس اندازه فیزیکی صفحه نمایش.
in
اینچ: بر اساس اندازه فیزیکی صفحه نمایش.

توجه: یک بعد یک منبع ساده است که با استفاده از مقدار ارائه شده در ویژگی name ، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع ابعاد را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources> ترکیب کنید.

محل فایل:
res/values/ filename .xml
نام فایل دلخواه است. name عنصر <dimen> به عنوان شناسه منبع استفاده می شود.
مرجع منبع:
در جاوا: R.dimen. dimension_name
در XML: @[ package :]dimen/ dimension_name
نحو:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen
        name="dimension_name"
        >dimension</dimen>
</resources>
عناصر:
<resources>
مورد نیاز. این گره ریشه است.

هیچ ویژگی

<dimen>
بعد، که توسط یک شناور و به دنبال آن یک واحد اندازه گیری (dp، sp، pt، px، mm، in) نشان داده می شود.

ویژگی ها:

name
رشته . نامی برای بعد این به عنوان شناسه منبع استفاده می شود.
مثال:
فایل XML ذخیره شده در res/values/dimens.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="textview_height">25dp</dimen>
    <dimen name="textview_width">150dp</dimen>
    <dimen name="ball_radius">30dp</dimen>
    <dimen name="font_size">16sp</dimen>
</resources>

کد برنامه زیر یک بعد را بازیابی می کند:

کاتلین

val fontSize: Float = resources.getDimension(R.dimen.font_size)

جاوا

Resources res = getResources();
float fontSize = res.getDimension(R.dimen.font_size);

طرح XML زیر ابعاد را به ویژگی ها اعمال می کند:

<TextView
    android:layout_height="@dimen/textview_height"
    android:layout_width="@dimen/textview_width"
    android:textSize="@dimen/font_size"/>

شناسه

یک شناسه منبع منحصر به فرد تعریف شده در XML. با استفاده از نامی که در عنصر <item> ارائه می‌کنید، ابزارهای توسعه‌دهنده Android یک عدد صحیح منحصر به فرد را در کلاس R.java پروژه شما ایجاد می‌کنند که می‌توانید از آن به عنوان شناسه منابع برنامه استفاده کنید، مانند View در طرح‌بندی UI یا یک عدد صحیح منحصر به فرد برای استفاده در کد برنامه شما، مانند یک شناسه برای یک گفتگو یا یک کد نتیجه.

توجه: شناسه یک منبع ساده است که با استفاده از مقدار ارائه شده در ویژگی name ، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع ID را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources> ترکیب کنید. همچنین، یک منبع ID به یک آیتم منبع واقعی اشاره نمی کند: یک شناسه منحصر به فرد است که می توانید به منابع دیگر پیوست کنید یا به عنوان یک عدد صحیح منحصر به فرد در برنامه خود استفاده کنید.

محل فایل:
res/values/ filename.xml
نام فایل دلخواه است.
مرجع منبع:
در جاوا: R.id. name
در XML: @[ package :]id/ name
نحو:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item
        type="id"
        name="id_name" />
</resources>
عناصر:
<resources>
مورد نیاز. این گره ریشه است.

هیچ ویژگی

<item>
شناسه منحصر به فرد را تعریف می کند. هیچ ارزشی نمی گیرد، فقط ویژگی ها.

ویژگی ها:

type
باید "id" باشد.
name
رشته . یک نام منحصر به فرد برای شناسه
مثال:

فایل XML ذخیره شده در res/values/ids.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <item type="id" name="button_ok" />
    <item type="id" name="dialog_exit" />
</resources>

قطعه طرح‌بندی زیر از شناسه "button_ok" برای ویجت Button استفاده می‌کند:

<Button android:id="@id/button_ok"
    style="@style/button_style" />

مقدار android:id در اینجا شامل علامت مثبت در مرجع ID نمی‌شود، زیرا شناسه از قبل وجود دارد، همانطور که در مثال ids.xml قبلی تعریف شد. هنگامی که با استفاده از علامت بعلاوه، با فرمت android:id="@+id/name" برای یک منبع XML یک شناسه مشخص می‌کنید، به این معنی است که شناسه "name" هنوز وجود ندارد و ایجاد شده است.

به عنوان مثالی دیگر، قطعه کد زیر از شناسه "dialog_exit" به عنوان یک شناسه منحصر به فرد برای گفتگو استفاده می کند:

کاتلین

showDialog(R.id.dialog_exit)

جاوا

showDialog(R.id.dialog_exit);

در همان برنامه، شناسه "dialog_exit" هنگام ایجاد یک گفتگو مقایسه می شود:

کاتلین

override fun onCreateDialog(id: Int): Dialog? {
    return when(id) {
        R.id.dialog_exit -> {
            ...
        }
        else -> {
            null
        }
    }
}

جاوا

protected Dialog onCreateDialog(int id) {
    Dialog dialog;
    switch(id) {
    case R.id.dialog_exit:
        ...
        break;
    default:
        dialog = null;
    }
    return dialog;
}

عدد صحیح

یک عدد صحیح تعریف شده در XML.

نکته: یک عدد صحیح یک منبع ساده است که با استفاده از مقدار ارائه شده در ویژگی name ، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع عدد صحیح را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources> ترکیب کنید.

محل فایل:
res/values/ filename.xml
نام فایل دلخواه است. name عنصر <integer> به عنوان شناسه منبع استفاده می شود.
مرجع منبع:
در جاوا: R.integer. integer_name
در XML: @[ package :]integer/ integer_name
نحو:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer
        name="integer_name"
        >integer</integer>
</resources>
عناصر:
<resources>
مورد نیاز. این گره ریشه است.

هیچ ویژگی

<integer>
یک عدد صحیح

ویژگی ها:

name
رشته . نامی برای عدد صحیح این به عنوان شناسه منبع استفاده می شود.
مثال:

فایل XML ذخیره شده در res/values/integers.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer name="max_speed">75</integer>
    <integer name="min_speed">5</integer>
</resources>

کد برنامه زیر یک عدد صحیح را بازیابی می کند:

کاتلین

val maxSpeed: Int = resources.getInteger(R.integer.max_speed)

جاوا

Resources res = getResources();
int maxSpeed = res.getInteger(R.integer.max_speed);

آرایه عدد صحیح

آرایه ای از اعداد صحیح تعریف شده در XML.

نکته: یک آرایه عدد صحیح یک منبع ساده است که با استفاده از مقدار ارائه شده در ویژگی name ، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع آرایه عدد صحیح را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources> ترکیب کنید.

محل فایل:
res/values/ filename .xml
نام فایل دلخواه است. name عنصر <integer-array> به عنوان شناسه منبع استفاده می شود.
نوع داده منبع کامپایل شده:
اشاره گر منبع به آرایه ای از اعداد صحیح.
مرجع منبع:
در جاوا: R.array. integer_array_name
در XML: @[ package :]array/ integer_array_name
نحو:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer-array
        name="integer_array_name">
        <item
            >integer</item>
    </integer-array>
</resources>
عناصر:
<resources>
مورد نیاز. این گره ریشه است.

هیچ ویژگی

<integer-array>
آرایه ای از اعداد صحیح را تعریف می کند. حاوی یک یا چند عنصر <item> فرزند است.

ویژگی ها:

android:name
رشته . نامی برای آرایه این نام به عنوان شناسه منبع برای ارجاع به آرایه استفاده می شود.
<item>
یک عدد صحیح مقدار می تواند مرجعی به یک منبع عدد صحیح دیگر باشد. باید فرزند یک عنصر <integer-array> باشد.

هیچ ویژگی

مثال:
فایل XML ذخیره شده در res/values/integers.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <integer-array name="bits">
        <item>4</item>
        <item>8</item>
        <item>16</item>
        <item>32</item>
    </integer-array>
</resources>

کد برنامه زیر آرایه عدد صحیح را بازیابی می کند:

کاتلین

val bits: IntArray = resources.getIntArray(R.array.bits)

جاوا

Resources res = getResources();
int[] bits = res.getIntArray(R.array.bits);

آرایه تایپ شده

یک TypedArray تعریف شده در XML. شما می توانید از این برای ایجاد آرایه ای از منابع دیگر، مانند ترسیمی ها استفاده کنید. نیازی نیست که آرایه همگن باشد، بنابراین می‌توانید آرایه‌ای از انواع منابع مختلط ایجاد کنید، اما از اینکه انواع داده‌ها در آرایه چیست و کجا هستند آگاه باشید تا بتوانید هر آیتم را با get...() کلاس TypedArray به درستی به دست آورید. روش های get...() .

توجه: یک آرایه تایپ شده منبع ساده ای است که با استفاده از مقدار ارائه شده در ویژگی name ، نه نام فایل XML، ارجاع داده می شود. به این ترتیب، می توانید منابع آرایه تایپ شده را با سایر منابع ساده در یک فایل XML، تحت یک عنصر <resources> ترکیب کنید.

محل فایل:
res/values/ filename .xml
نام فایل دلخواه است. name عنصر <array> به عنوان شناسه منبع استفاده می شود.
نوع داده منبع کامپایل شده:
اشاره گر منبع به TypedArray .
مرجع منبع:
در جاوا: R.array. array_name
در XML: @[ package :]array/ array_name
نحو:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array
        name="integer_array_name">
        <item>resource</item>
    </array>
</resources>
عناصر:
<resources>
مورد نیاز. این گره ریشه است.

هیچ ویژگی

<array>
یک آرایه را تعریف می کند. حاوی یک یا چند عنصر <item> فرزند است.

ویژگی ها:

android:name
رشته . نامی برای آرایه این نام به عنوان شناسه منبع برای ارجاع به آرایه استفاده می شود.
<item>
یک منبع عمومی مقدار می تواند مرجعی به یک منبع یا یک نوع داده ساده باشد. باید فرزند عنصر <array> باشد.

هیچ ویژگی

مثال:
فایل XML ذخیره شده در res/values/arrays.xml :
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <array name="icons">
        <item>@drawable/home</item>
        <item>@drawable/settings</item>
        <item>@drawable/logout</item>
    </array>
    <array name="colors">
        <item>#FFFF0000</item>
        <item>#FF00FF00</item>
        <item>#FF0000FF</item>
    </array>
</resources>

کد برنامه زیر هر آرایه را بازیابی می کند و سپس اولین ورودی را در هر آرایه به دست می آورد:

کاتلین

val icons: TypedArray = resources.obtainTypedArray(R.array.icons)
val drawable: Drawable = icons.getDrawable(0)

val colors: TypedArray = resources.obtainTypedArray(R.array.colors)
val color: Int = colors.getColor(0,0)

جاوا

Resources res = getResources();
TypedArray icons = res.obtainTypedArray(R.array.icons);
Drawable drawable = icons.getDrawable(0);

TypedArray colors = res.obtainTypedArray(R.array.colors);
int color = colors.getColor(0,0);