انجمن برنامه نویس

آموزش : برنامه نویسی اندروید این قسمت : سازماندهی منابع اندروید استویدو

شروع موضوع توسط 8908190 ‏28/7/18 در انجمن مقالات برنامه نویسی

گنجینه های
برنامه نویسی
فیلم های آموزشی
زبان های برنامه نویسی
فیلم های آموزشی
پروژه محور C#
فیلم های آموزشی
برنامه نویسی اندروید
فیلم های آموزشی
طراحی سایت
فیلم های آموزشی
برنامه نویسی پایه
گنجینه برنامه نویسی C# آموزش برنامه نویسی C سیستم مدیریت بانک آموزش اندروید - مقدماتی آموزش زبان HTML اصول و مبانی برنامه نویسی
گنجینه آموزش ASP .Net آموزش برنامه نویسی C++‎ پیاده سازی مدیریت آتلیه آموزش اندروید - تکمیلی آموزش زبان CSS آموزش الگوریتم و فلوچارت
گنجینه برنامه نویسی PHP آموزش برنامه نویسی C# پیاده سازی سیستم هتلداری آموزش اندروید - پیشرفته آموزش زبان Java Script آموزش تبدیل فلوچارت به کد
گنجینه آموزش طراحی وب آموزش برنامه نویسی جاوا شبیه سازی دستگاه عابربانک آموزش ساخت لیست ایمیل آموزش زبان jQury برنامه نویسی اسمال بیسیک
گنجینه برنامه نویسی متلب آموزش برنامه نویسی PHP پیاده سازی مدیریت آموزشگاه آموزش ساخت گالری تصاویر آموزش زبان XML آموزش برنامه نویسی اسمبلی
گنجینه برنامه نویسی اندروید آموزش برنامه نویسی پایتون پیاده سازی سیستم صدور بلیت آموزش کنترل ربات با اندروید آموزش طراحی Responsive طراحی سایت ویژه کودکان
گنجینه برنامه نویسی VB .Net آموزش برنامه نویسی اندروید پیاده سازی سیستم نوبت دهی آموزش ارتباط با دیتابیس سرور ساخت سایت خبری کدنویسی سریع با Emmet
گنجینه زبان های برنامه نویسی آموزش برنامه نویسی زبان R سیستم حسابداری و انبارداری زبان بیسیک فور اندروید (B4A) ساخت سایت فروشگاه آموزش کار با پایگاه داده
  1. 8908190
    karbar Rank

    تاریخ عضویت:
    ‏22/7/18
    ارسال ها:
    5
    تشکر شده:
    0
    امتیاز دستاورد:
    5
    جنسیت:
    مرد
    موارد بسیار زیادی وجود دارد که شما برای ساخت یک برنامه خوب اندروید ، استفاده می کنید. به غیر از برنامه نویسی برای اپلیکیشن ، شما از منابع (resources ) مختلف دیگری همچون محتوای استاتیک نظیر bitmaps ها (که کد شما استفاده می کند) ، رنگ ها ، تعاریف طرح ، رشته های رابط کاربری ، دستور العمل های انیمیشن و غیره استفاده می کنید. این منابع (resources ) به طور جداگانه همیشه در زیر شاخه های مختلف تحت مجوز res/ نگهداری می شوند.

    این آموزش برای شما تشریح خواهد کرد که چگونه می توانید :

    • منابع (resources) برنامه خود را سازماندهی کنید
    • منابع (resources) جایگزین را مشخص کرده
    • چگونه به برنامه های خود دسترسی داشته باشید.
    سازماندهی منابع در Android Studio :

    شما باید هر نوع منبع (resources) را در یک دایرکتوری فرعی خاص ، از دایرکتوری res/ پروژه ی خود قرار دهید. برای مثال، در اینجا یک سلسله مراتبِ فایل برای یک پروژه ساده ارائه شده است. (دایرکتوری res/ شامل همه ی منابع موجود در دایرکتوری های فرعی مختلف است. )

    MyProject/
    app/
    manifest/
    AndroidManifest.xml
    java/
    MyActivity.java
    res/
    drawable/
    icon.png
    layout/
    activity_main.xml
    info.xml
    values/
    strings.xml


    جدول زیر جزئیاتی را در مورد دایرکتوری های منابع پشتیبانی شده در دایرکتوری res/ پروژه ارائه می دهد :

    anim/
    فایل های XML ای که ویژگی های انیمیشن ها را تعریف می کنند. آن ها در پوشه ی res/anim/ ذخیره می شوند و به وسیله ی کلاس R.anim مورد دسترسی قرار می گیرند.

    color/
    فایل های XML ای که لیست وضعیت رنگ ها را تعریف می کند. آن ها در پوشه res/color/ ذخیره می شوند و از طریق کلاس R.color مورد دسترسی قرار می گیرند.


    drawable/
    فایل های تصویری مانند .png،.gif،.jpg یا فایل های XML ای هستند که در بیت مپ ها، لیست های وضعیت (state list)، شکل ها(shapes) و موارد کشیدنی انیمیشن ها (animation drawables) کامپایل می شوند. آن ها در پوشه res/drawable/ ذخیره می شوند و از کلاس R.drawable مورد دسترسی قرار می گیرند.

    layout/
    فایل های XML ای که یک layout برای واسط کاربری (user interface) را تعریف می کنند. آن ها در پوشه res/layout/ ذخیره می شوند و از طریق کلاس R.layout مورد دسترسی قرار می گیرند.

    menu/
    فایل های XML ای که منو های اپلیکیشن ها را تعریف می کنند. مانند منوی گزینه ها (Options Menu) یا Context Menu یا Sub Menu (منوی فرعی). آن ها در پوشه res/menu/ ذخیره می شوند و از طریق کلاس R.menu مورد دسترسی قرار می گیرند.

    raw/
    فایل های اختیاری ای که به شکل خام خود ذخیره می شوند. شما باید Resources.openRawResource() را با شناسه منبع (resource ID) فراخوانی کنید که به صورت R.raw.filename برای باز کردن این فایل های خام است.

    values/
    فایل های XML ای که شامل مقادیر ساده مانند رشته ها، اعداد صحیح و رنگ ها هستند. به جلسه دوم آموزش اندروید - سازماندهی منابع در اندروید استودیو مراجعه کنید. برای مثال، در اینجا برخی از قرار داد های نام فایل برای منابعی که شما می توانید در این دایرکتوری ایجاد کنید ارائه شده است :

    [​IMG]

    • arrays.xml مربوط به منابع آرایه ای (resource arrays) است و دسترسی به آنها از طریق کلاس R.array انجام می شود.
    • integers.xml مربوط به منابع اعداد صحیح (resource integers) است و دسترسی به آنها از طریق کلاس R.integer انجام می شود.
    • bools.xml مربوط به منابع بولین است و دسترسی به آنها از طریق کلاس R.bool انجام می شود.
    • colors.xml مربوط به مقادیر رنگ است و دسترسی به آن از طریق کلاس R. color انجام می شود.
    • dimens.xml مربوط به ابعاد است و دسترسی به آن از طریق کلاس R. dimen انجام می شود.
    • strings.xml مربوط به مقادیر رشته است و دسترسی به آن از طریق کلاس R. string انجام می شود.
    • styles.xml مربوط به استایل دهی (Style) است و دسترسی به آن از طریق کلاس R. style انجام می شود.

    xml/
    فایل های XML اختیاری ای که می توانند در زمان اجرا با فراخوانی ()Resources.getXML خوانده شوند. شما می توانید فایل های پیکره بندی مختلف را برای استفاده در زمان اجرا، در اینجا ذخیره کنید.

    منابع جایگزین (Alternative Resources) :
    اپلیکیشن شما باید منابع جایگزینی را برای پشتیبانی از تنظیمات خاص دستگاه فراهم کند.
    برای مثال، شما باید منابع کشیدنی جایگزین (یعنی تصاویر) را برای وضوح تصویر های مختلف (رزولوشن های تصویر مختلف) و منابع رشته ای جایگزین را برای زبان های مختلف در نظر بگیرید. در زمان اجرا، اندروید تنظیمات فعلی دستگاه را تشخیص می دهد و منابع مناسب را برای اپلیکیشن شما بارگذاری می کند.

    برای تعیین جایگزین هایی با تنظیمات خاص برای مجموعه ای از منابع، مراحل زیر را دنبال کنید.

    1) یک دایرکتوری جدید در res/ named به صورت <resources_name>...<config_qualifier> ایجاد کنید. در اینجا resources_name می تواند هر کدام از منابع مطرح شده در جدول بالا مانند layout، drawable و غیره باشد. qualifier (توصیف کننده) یک پیکر بندی منحصر به فرد را مشخص می کند که این منابع در آن استفاده می شوند. شما می توانید اسناد رسمی را برای لیست کاملی از qualifier های (توصیف گرهای) مربوط به انواع مختلف منابع، بررسی کنید.

    2) منابع جایگزین مربوط را در این دایرکتوری جدید ذخیره کنید. همان طور که در مثال زیر نشان داده شده است، نام فایل های منابع باید دقیقا همان نام فایل های منبع پیش فرض باشد ولی محتوای این فایل ها وابسته به منبع جایگزین است (یعنی محتوای جایگزین را جای محتوای قبلی می نویسیم) . برای مثال، با وجود اینکه، نام فایل تصویر همان نام قبلی، ولی برای صفحه ای با رزولوشن بالا، رزولوشن تصویر بالا خواهد بود.


    MyProject/
    app/
    manifest/
    AndroidManifest.xml
    java/
    MyActivity.java
    res/
    drawable/
    icon.png
    background.png
    drawable-hdpi/
    icon.png
    background.png
    layout/
    activity_main.xml
    info.xml
    values/
    strings.xml



    در ادامه مثال دیگری آمده است که، صفحه بندی (layout) را برای یک زبان پیش فرض و صفحه بندی (layout) جایگزین را برای زبان عربی مشخص می کند.


    MyProject/
    app/
    manifest/
    AndroidManifest.xml
    java/
    MyActivity.java
    res/
    drawable/
    icon.png
    background.png
    drawable-hdpi/
    icon.png
    background.png
    layout/
    activity_main.xml
    info.xml
    layout-ar/
    main.xml
    values/
    strings.xml


    دسترسی به منابع (Accessing Resources) :
    شما در طول ساخت اپلیکشن خود نیازمند دسترسی به منابع تعریف شده در کد خود یا در فایل های XML صفحه بندی (layout XML file) خود هستید. بخش زیر شرح می دهد که شما چگونه می توانید به منابع خود در هر دو سناریو دسترسی پیدا کنید.