برمجة تطبيق اندرويد متوافق جميع الشاشات

بسم الله الرحمن الرحيم

في هذا الدرس كيفية جعل تطبيقك متوافق لجميع قياس الشاشات.

درس طلبه مني الكثير, ويبحث عنه الكثير, وإن شاء الله يستفيد الكثير ^_^ , في كيفية جعل تطبيقك الاندرويد متوافق مع جميع الشاشات.

أحب أن أذكر أنه يوجد طرق مختلفة وكثيرة, ولكن التي سوف اشرحها هي ما استخدمها.

في البداية يجب عليك أن تعلم أن القياسات الرئيسية هي أربعة :

xlarge screens are at least 960dp x 720dp
large screens are at least 640dp x 480dp
  الافتراضي – normal screens are at least 470dp x 320dp
small screens are at least 426dp x 320dp

كما تستطيع تحديد القياس كما يحلو لك, بتحديد العرض. يعني إذا حددت مجلد اللياوت عند عرض 480 ومرة اخرى عند 800 وهكذا .. هو يفحص العرض الذي وضعته ويأخذ اقربها للجوال الذي تم تشغيل التطبيق عليه. ولكن هذه الطريقة جداً طويلة لجعل التطبيق يتوافق تماماً مع كل شاشات الجوالات التي تعمل على اندرويد ولا اعتقد ان هناك تطبيق يستخدمها, ممكن استخدام قياس معينة منها. لذلك سوف أشرح الرئيسية منها فقط.

بالنسبة للقياس الافتراضي normal وهو مجلد layout : مناسب لشاشات بين 3 إلى 5 إنش أي الجوالات المعروفة والأغلبها شهرة مثلاً : جوالات سامسونج جالكسي اس.

بالنسبة للقياس الصغير small وهو مجلد layout-small : قليل الاستخدام, لأن اغلب الجوالات حالياً أصبحت كبيرة, وهو مناسب للجوالات 2-3 انش.

بالنسبة للقياس الكبير large وهو مجلد layout-large : وهو مناسب تماماً للشاشات 7 انش.

بالنسبة للقياس الضخم xlarge وهو مجلد layout-xlarge : وهو مناسب تماماً للشاشات 10 انش.

بالنسبة لي استخدم جميع القياس إلا الصغير, فحالياً تستخدم بكثرة اجهز التابلت 7-10 بوصة.

ذكرت لكم أسماء المجلدات, لذلك اتبع معي ما سوف تقوم بفعله :

في البداية تنتهي من تطبيقك على المجلد الافتراضي layout وعند الانتهاء منه, تقوم بعمل نسخة منه بإسم layout-large وتقوم بالتعديل على القياسات داخلها للتناسب مع الشاشة التي يعرضها لك الاندريد ستوديو.

بعد ذلك تقوم بنسخ مجلد layout-large و إنشاء نسخة منه بإسم layout-xlarge ليسهل عليك عملية التكبير وتقوم كذلك بتغير القياسات.

لا تقم بتغيير القياسات إلا بعد الانتهاء من مشروعك, لكي تتجنب المشاكل, فإذا قمت بذلك قبل الانتهاء يجب عليك بعد وضع عنصر في اللياوت الاولى الافتراضية تضيف نفس العنصر في اللياوت الكبيرة وهكذا .. سوف يكون الأمر ممل بتكرار العناصر .. كذلك إذا اضفت عنصر في الشاشات الصغيرة واضفت له الاوامر البرمجية ولم يكن بالشاشات الكبيرة, هكذا عند فتح التطبيق على الشاشات الكبيرة سوف تحدث مشكلة لعدم وجود العنصر الذي له اوامر برمجية.

لكل مجلد منها تستطيع عمل له نسخة بالشكل الأفقي, وذلك بنسخ المجلد بإسم المجلد + land , وهكذا تستطيع عمل تطبيق مناسب لجميع الشاشات, سواء كانت كبيرة او صغيرة او بالاتجاه العمودي والأفقي, كما تستطيع تغير الترتيب كما يحلو لك.

أحياناً نشاهد تطبيقات بالاتجاه العمودي, وعند قلب الجهاز للاتجاه الافقي يتغير كل شيء فيها. وهذا ما تستطيع فعله بعد قرائتك وتطبيقك لهذا الدرس.

احياناً تحتاج إلى أضافت التالي في ملف manifest :

========= انتهى =========== إلى هنا الوضع سليم لك كمبتدئ.

يوجد طرق كثيرة كما ذكرت لعمل هذا الشيء, كما أن الموضوع جداً طويل, وانا اختصرته قدر الإمكان تستطيع مراجعته من الموقع الرسمي لمطورين اندرويد : http://developer.android.com/guide/practices/screens_support.html

اقرأ الموضوع الشامل فيه تتعرف على أشياء كثيرة وجديدة, منها الدقة والتحكم بها, اغلب ملفات res في مشروعك تستطيع تكرارها على حسب اللغة او الدقة او القياس او الاتجاه .. إلخ.

خلاصة : اكمل مشروعك, بعدها قم بنسخ مجلد اللياوت مرتين يصبح لديك المجلد 3 مرات, قم بتغير اسمائها كما مذكور في الدرس ثم قم بفتح اللياوتات وعدل بالقياسات فيها.

إن شاء الله تكونوا قد استفدتم .. وإلى اللقاء في دروس جديدة وحصرية ~

عن عبدالقادر عليوي

مواليد 1996 , سوري الجنسية, طالب علم, لدي شغوف كبير في تعلم كل ما يتعلق بالانترنت من تطوير وحماية, أحب القراءة كثيراً .. هدفي نشر العلم بشتى أنواعه ومجالاته, متابع من الدرجة الأولى لـ الدكتور ابراهيم الفقي و الشيخ أحمد ديدات - رحمهم الله -.

شاهد أيضاً

أبسط طريقة لاستخدام زر التبديل ToggleButton بالاندرويد برمجياً

بسم الله الرحمن الرحيم في هذه التدوينة السريعة, طريقة سهلة وبسيطة لاستخدام زر التبديل ToggleButton في …

11 تعليق

  1. اسماعيل المؤيد

    اشكرك كثير ع الدرس الممتع والمفيد

  2. جزاك الله خير,, بس عندي كم سؤال:
    -بالنسبة للمجلدات شو بتحوي؟ صور ولا شو؟
    – هلق انا بشتغل على اكلبس بعمل من كل صورة بدي استخدمها 3 قياسات وبوزعها على مجلدات drawable
    وبعمل عرض Layout: fill_parent ,, بس عم يتم عندي مشكلة الارتفاع يلي اذا وضعتها مثلا 100dp رح يختلف بين شاشة وأخرى؟ هالشغل صح ولا لأ؟

    • امين يا رب جميعاً ..

      مجلدات اللياوت , تحتوي ملفات اللياوت جميعهاً, نفس النسخة الاصل تقوم بتكرارها بأسماء مختلفة لكي تتغير الاحجام بشكل تلقائي ..

      اممـ الصور التي تعمل لها عدة قياسات بالغالب هي الايقونات فقط .. فالافضل ان تكون عالية الدقة لذلك تقوم بتكرارها باحجام مختلفة ..

      أما الصور العادة لا تحتاج إلى تكرارها .. تستطيع وضع واحدة كبيرة .. وتقوم بتصغيرها كيف تشاء وهكذا تظهر في حالة جيدة ..

      صحيح يختلف , لذلك اتبع الطريقة التي في الدرس .. وهكذا تستطيع تعيين ارتفاع لكل شاشة .. وبالتوفيق 🙂

  3. يعطيك العافية.. اليوم نزلت android studio وحاولت طبق هالدرس
    وحااولت أعمل مجلد لياوت
    New” -> “Android Resource Directory”. Give it the name “layout-large” and the type “layout”
    بس ماعم يظهر المجلد layout-large تحت المجلد res ليش؟

    • ربي يعافيك خيي واهلا وسهلا فيك ..

      بالنسبة لاندرويد ستوديو ع حسب المستويات احياناً بيتغير نمط المجلدات والملفات ..

      أغلبها نمطين :

      المرتب منها .. وهو الأفضل لن ترى مجلد layout-large واسماء هذه المجلدات من داخل اندرويد ستوديو .. ولكن تراها في مجلدات المشروع على جهازك ..

      لكن عند الدخول إلى layout سوف تجد كل لياوت لديك .. يوجد منها أكثر من نسخة على حسب المجلدات لديك .. اي تستطيع فتح الواجهة الاولى .. بالحجم الصغير والكبير ..

      أما النمط الأخر .. ترى المجلدات والملفات جميعها ..

  4. مشكور الله يعطيك العافيه هذا من اجمل ما قراءت

  5. الافضل استخدام :

    res/layout/main_activity.xml # For handsets (smaller than 600dp available width)
    res/layout-sw600dp/main_activity.xml # For 7” tablets (600dp wide and bigger)
    res/layout-sw720dp/main_activity.xml # For 10” tablets (720dp wide and bigger)

    • نعم تستطيع ذلك, يوجد طرق مختلفة, كما ان هناك طرق من الاكواد تجعل التطبيق متوافق ,, ولكن نحاول قدر لامكان تبيسيط اسهل الطرق. شكراً لمشاركتك اخي

  6. شمس الغروب

    شكرا على الدرس القيم و المفيـد ..
    لو سمحت عندي سؤال انت ذكرت اتلعديل في القياسات تبع الشاشات .. ممكن اعرف كيف يتم هذا ^^

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *