/سلسلة تعلم أندرويد -5- تغيير اتجاه الشاشة

سلسلة تعلم أندرويد -5- تغيير اتجاه الشاشة

أهلا وسهلا بكم في الدرس الخامس من سلسلة  برمجة الأندرويد

من احد خصائص الأندرويد كما في كل الأجهزة الذكية هو إمكانية تبديل اتجاه شاشة العرض ، وللشاشة اتجاهين احداهما يطلق عليه portrait أي شاشة طولية وهو وضع الجهاز العادي ، والآخر يطلق عليه landscape أي شاشة عرضية وهي تظهر عند إمالة الجهاز علي جانبه.

النقاط الرئيسية التي سنتحدث عنها في هذا الدرس :

1-    التعامل مع التغير في اتجاه الشاشة.

2-    حفظ حالة الشاشة عند حدوث تغيير في اتجاهها.

3-    التحقق من إتجاه الشاشة.

4-    التحكم في إتجاه الشاشة.

أولا : التعامل مع التغير في إتجاه الشاشة :

عند تشغيل أي تطبيق ثم تغيير إتجاه شاشة العرض فالأكتفيتي الذي يظهر علي الشاشة في هذه اللحظة يقوم بإعادة رسم محتوياته في الإتجاه الجديد ، وهذا يحدث بسبب إستدعاء ميثود onCreate في كل مره يحدث تغير لاتجاه الشاشة ، هذا يعني أن الأكتفيتي يتم قتله بإستدعاء ميثود onDestroy ثم يتم إنشاءه من جديد بإستدعاء ميثود onCreate لرسم واجهة المستخدم في الإتجاه الجديد.

لذلك عند إعادة رسم الـ views في الإتجاه الجديد فسترسم في نفس أماكنها السابقة مما قد يؤثر علي شكل واجهة المستخدم كما يتضح في التطبيق الذي قمنا بعمله بالدرس السابق في الجزء الثاني الخاص بالترتيب الجدولي ، فكان هذا هو شكل واجهة المستخدم عند تشغيل التطبيق

 وعند الضغط علي Ctrl+F11 لتغيير اتجاه شاشة الجهاز الوهمي تظهر واجهة المستخدم بهذا الشكل

عند تغيير إتجاه الشاشة ظهر في الجزء الأيمن مساحة فارغة يمكن إستخدامها ، وأيضا إذا كان هناك فيو في أسفل الشاشة لن يظهر عند تغيير إتجاه العرض.

ويوجد طريقتين للتكيف والتعامل مع هذا التغيير :

الطريقة الأولي

 

وهي ما تسمي بـ Anchoring أي الرسو بمعني إرساء كل عنصر أو فيو مع الحواف الأربعة للشاشة وعند حدوث تغيير في إتجاه عرض الشاشة تظل الـ views ثابتة بالنسبة لحواف الجهاز.

مثال : يمكن تحقيق ذلك بإستخدام RelativeLayout كما في هذا المثال

 سيكون شكل واجهة المستخدم في الاتجاه الطولي

وعند تغيير اتجاه العرض سيكون هذا شكل واجهة المستخدم في الاتجاه العرضي

الطريقة الثانية

وتسمي بـ Resizing and Repositioning أي إعادة تشكيل الحجم والمكان بمعني إعادة تحديد حجم كل فيو طبقا لإتجاه العرض الحالي ، في هذه الطريقة يتم عمل فولدر بداخل فولدر res هذا الفولدر الجديد يأخذ اسم layout-land اختصار landscape ويوضع به ملفات الـ xml الخاصه بهذا الوضع والتي تحتوي علي واجهة مستخدم قد تختلف بشكل كبير عن واجهة المستخدم في الوضع الطولي ، ويتم إستخدام هذه الطريقة بشكل أكبر لجعل التطبيق يدعم شاشات متعدده بأحجام مختلفة وقد نتكلم عنها بالتفصيل أكثر في درس قادم إن شاء الله تعالى لاحظ الشكل التخطيطي في الصوره التالية

المسؤول الأول عن قسم استكشف اندرويد في موقع أندرويدهـاز و صاحب سلسلة تعلم أندرويد وطالب في كلية الهندسة جامعة الأزهر بالقاهره، مهتم بالتكنولوجيا وأعشق تجربة كل جديد من منتجاتها.. http://androidhas.com/