مجلد الفايلوس هو مجلد يحتوي على القيم والمتغيرات .. النوع:الاسم:القيمة مثل نضع داخله قيمة
من نوع لون واسمها أحمر والقيمة هي كود اللون الحمر ff0000# وهكذا ..
ما يحتويه مجلد الفايلوس هي ملفات xml لكل منها استخدام معين, مع العلم إنك تستطيع دمجها او
جعلها كلها في ملف واحد أو تغيير اسمائها .. فقط ملفات الفايلوس يهم ما بداخلها للوصول إليها,
وسوف نتعرف كيف يتم الوصول لها في درس مستقل ) الوصول لموارد المشروع .(
من أهم الملفات التي يحتويها مجلد الفايلوس :
- strings.xml : ملف القيم أو النصوص, وهو أكثر من مهم حاليا ما تجده داخله اسم التطبيق,
تستطيع تغييره من داخله, ومن ثم لك حرية إضافة النصوص التي تريد.
والفائدة منه مثل لدينا قيمة داخله بإسم Abboudi والقيمة لها عبدالقادر, إذا تستطيع في المشروع
استخدام نص سترنج Abboudi وسوف يتم طباعته على إنه عبدالقادر وهكذا.
والسترنج في الريس res على عدة أنواع ثلثة : String وهو للنص المفرد, أما لسلسلة من النصوص
فنستخدم Array String وأما للكميات والجموع فنستخدم .Plurals
وهذا كود يوضح الفرق بين كل, منها : String //
<string name="string_name">text_string</string>
String Array//
<string-array name="string_array_name">
<item>text_string</item>
< string-array / >
Quantity Strings (Plurals) //
< plurals
name="plural_name">
<item quantity=["zero" | "one" | "two" | "few" | "many" | "other"]>text_string</item>
< plurals / >
- styles.xml : ملف الاستايل او الثيم المستخدم للتطبيق, في الغالب نضع استايل معرف في ملفات
الأندرويد وهو يعطي القيم الخاصة به لمشروعنا, وتستطيع الستفادة منه في أمور كثيرة منها
التحكم بالحجم النص بمشروعك والألوان إلخ. وسوف نتعرف عليه بموضوع مستقل.
- colors.xml : ملف لوضع قيم للألوان واستخدامها في مشروعك, مثل نضع مجموعة الوان ونضع لها
اسماء, من ثم نستخدم فقط الاسم في المشروع ويتم التعرف على القيمة التي وضعناها.
وغيرها من الملفات التي سوف تتعلم وتتعرف عليها من خلال استخدامها, والانواع التي يخرجها
مجلد الفايلوس هي :
Bool – Color – Dimension – ID – Integer – Integer Array – Typed Array
ويوجد الكثير من الملفات والمجلدات تستطيع الاستغناء عنها, وذلك بإستخدام ملفات اخرى تقوم
بنفس المهمة. ولكنها وضعت من أجل الترتيب.
أهم ما يميز مجلد الفايلوس, إنك عندما تضع فيه جميع ما تستخدم في مشروعك, تستطيع تكرار مجلد الفايلوس للغة اخرى, وتغيير القيم داخله وهكذا تستطيع برمجة تطبيق متعدد اللغات, وسوف
نشرح كيفية بناء تطبيق متعدد اللغات في موضوع مستقل.
الملف هذا كان يمتلك صلاحيات كثيرة, ولكن مع الأندرويد ستوديو أصبح يتقاسها مع ملف
build.gradle و الآن هذا الملف هو جدا مهم تستطيع إعتباره إنه ملف وثيقة المشروع. لا يصلح
المشروع من دونه.
وتستطيع استخدام داخله وسوم كثيرة, لكن سوف نذكر أهم ما يوجد داخله, وهي إننا نقوم بوضع إي اكتفتي لدينا بالمشروع, لو لم نضعها كلها, لن يتم التعرف على غير الموجودة, وفي حال تم تطلبها بالمشروع سوف يتم التطبيق عن العمل. لن لم يتعرف على غير الموجودة داخله. وطريقة
إضافة الاكتفتي جدا سهلة, أبسطها :
< /" activity android:name=".Activity >
بنفس الطريقة مع وضع اسماء جميع الاكتفتي لديك, الاكتفتي وليس الكلاسات
و كذلك في هذا الملف نضع الصلاحيات التي نريدها من تطبيقنا, مثل الوصول للملفات, الوصول
والاتصال بالإنترنت, استخدام الكاميرا إلخ من الصلاحيات المختلفة.
مثال صلاحية الوصول لحالة الشبكة :
< uses-permission android:name="android.permission.ACCESS_NETWORK_ST ATE"/>
طبعا هذه الصلاحية فقط, تحتاج إلى الكواد لكي تتحقق من حالة الاتصال, الكواد ل تعمل من دون الصلاحية, لأنها تعمل ولكن تطبيقك لم يخبر الجهاز مسبقا قبل التثبيت انه يحتاج للتحقق من حالة
الشبكة.
من هذا الملف نستطيع أن نحدد ما هي الاكتفتي التي سوف تعمل في بداية تشغيل التطبيق.
باختصار هذا الملف مهم إن تضع فيه كل ما لديك من اكتفتي وصلاحيات, ومعرف التطبيق كذلك,
والسبب مثل لو كان تطبيقك حجمه يتجاوز 50 ميغا, فقرائته بالمتجر سوف تصبح جدا صعبة, لذلك
يتم قراءة هذا الملف فقط لنتعرف من داخله ما هي ايقونة التطبيق وما اسمه وما المعرف الخاص به وما يوجد لديك من اكتفتي وما هي الصلاحيات التي يحتاجها.. وهكذا بسهولة يتم التحقق من
تطبيقك والموافقة على نشره بالمتجر.
بمعنى كيف تصل إلى صورة مثلاً لاستخدامها في تطبيقك وهي موجودة بداخل مجلد الصور.
من المعروف عند الوصول إلى موقع ما نستخدم عنوان محدد مثلاً AndRody - اندرودي عربي - اول موقع عربي مهتم ببرمجة تطبيقات اندرويد أو لملف معين
في الجهاز له مسار محدد.
كذلك تحتاج لمعرفة كيفية الوصول للملفات بداخل مشروعك لكي تستخدمها برمجيا .
بالتأكيد ذكرنا سابقاً إن الموارد جميعها بمجلد اسمه res وبرمجيا نشير إليه بحرف R .
ولكن وضع هذا الشرح المستقل لنعرف بعض النقاط, إن المجلدات يتم الوصول إليها بإسمها عدا مجلد الفايلوس فالذي بداخله تستطيع تغيير اسماء ملفاته أو الإضافة إليها, لذلك يتم الوصول إلى ما
بداخله عن طريق ما بداخل الملفات التي بداخله.
كذلك يتم الوصول إلى جميع الملفات بداخل مجلدات المشروع بإسمها دون اللاحقة او الصيغة عدا
بعض طرق الوصول المختلفة و مجلد assets يجب أن تحدد صيغة الملف لأنك بداخله تستطيع إضافة
ما تريد من ملفات ومجلدات.
مثال :
.لدينا صورة إسمها image.jpg وضعناها في مجلد drawable .
يتم الوصول إليها هكذا : R.drawable.image
- لدينا معرف id لأي عنصر مثل اسمه .test
يتم الوصول إليه : R.id.test
- الوصول إلى ملفات الواجهات اللياوت لربطها بالاكتفتي : R.layout.activity_main
وأما بشأن ما بداخل مجلد Values :
مثلاً قيمة string اسمها app_name بداخل ملف اسمه test.xml بداخل مجلد values .
الوصول لهذه القيمة : R.string.app_name
لاحظ لم يهمنا لا اسم الملف ولا المجلد. فقط النوع والاسم.
وأما بشأن الموارد بداخل مجلد assets :
لاحظ إن هذا المجلد ليس بداخل res لذلك الوصول إليه يختلف حسب الطريقة التي تستخدمها,
ويوجد طرق كثيرا جدا . تختلف الطريقة بحسب الموقع الذي تحتاج الوصول منه.
مثال : الوصول لصفحة ويب html داخل هذا المجلد, ونحتاج استخدام صفحة الويب هذه بداخل عنصر
ويب فيو. من الجافا نصل إليها كسترنج :
"file:///android_asset/name.html"
أو الوصول إلى ملف خط مثلاً إسمه test.ttf إذا سوف نحتاج الخط في تعريف خط برمجيا من الجافا
بهذا الشكل :
getAssets(),"test.ttf"
وهكذا على حسب الاستخدام والنوع.
كل ما سبق في هذا الموضوع هو لاستخدام الموارد برمجيا في الجافا, إما لاستخدامها في ملفات
xml بالطريقة التالية :
الوصول للسترنج : @ string/app_name
الوصول لاستايل : @ style/AppTheme
الوصول لصورة : @ drawable/image
وهكذا الأمر جدا جدا بسيط .. فقط مع الاستخدام سوف تتعرف عليه بشكل أكبر.
تحرير الاستايل العام للتطبيق
لو لاحظنا ملف الاستايل بعد إنشاء أول مشروع كان بالشكل التالي :
لاحظ في الزاوية العلوية للإخطار يوجد – editor Open سوف يفتح لك المحرر :
تستطيع الاختيار بما يناسبك, وهذا هو تصميم الماتريال ديزاين . وتستطيع معاينة لاكثر من لغة او
اصدار والاتجاه إلخ حسب المحمل لديك بالـ SDK من إصدارات وقياسات مختلفة.
style/Theme.AppCompat.NoActionBar@ الاستايل لديك يعمل ل ومن
يتأكد من الـ build.gradle إن لديه مضاف مكتبة الدعم :
compile 'com.android.support:appcompat-v7:23.1.0'
حسب الاصدار لديك يتغير الرقم 23.1.0 .
كما يمكنك تعديل الستايل يدويا وإضافة أساسيات لكي تستطيع بالتعديل الكامل للتطبيق. وكذلك تستطيع من خلال الاستايل تعديله بالكامل إن كان لجهاز معين أو للغة معينة إلخ ولكن اعتبرها
مراحل متقدمة نوعا ما. إن شاء الله يتم شرحها في الدورة لاحقاً