بسم الله الرحمن الرحيم
والصلاة والسلام على سيدنا
محمد صل الله عليه وسلم
ان شاء الله النهارده هنتكلم فى
اكتر من حاجه ونبدأ بسم الله ب XML وهو مهم جدا فى الاندرويد لان كل ال layout عبارة عن xml files .
-
XML
: اختصار ل Extensible Markup
Language
ازاى بنكتب
كود داخل ال xml file ؟ اى
كلام داخل ال xml file بيكون عبارة عن nodes ، يعنى ايه الكلام ده ؟
مثال :
< node>
</node>
-
كلمه node مش شرط تكون موجوده ، ده عبارة
عن مثال وممكن نشيل كلمه node ونحط مكانها اى كلمه تانيه بس
لازم اللى اكتبه كده < node>
اقفله كده </node> ، نفهم من كده ان ال node التانيه
اللى جنبها /
هى عبارة عن القفله بتاعت اللى فوق ، زى بالظبط لما كنا نعمل method بعدها نعمل
قوسين {} والقوس اللى بنفتحه لازم نقفله
فى ال method
او ال class
او حتى لو هنعمل if statement
كان اى قوس نفتحه لازم نقفله ، هى كده بالظبط ال node اللى نفتحها
لازم نقفلها ، وممكن بدل ما نعمل السطرين دول نعمل كده <node/> وكده كأننا
فتحنا وقفلنا ال node
فى نفس السطر ، يعنى عندنا طريقتين اى واحده فيهم نعملها تبقى صح المهم لازم نعمل
اى واحده فيهم .
-
ال node هنا كأننا بالظبط خدنا object
من class ، ازاى ؟؟؟
يعنى المثال السابق معناه كالآتى : اننا
عندنا Class
اسمها node
واحنا عايزين نستخدمها ، فبنعمل الشكل اللى فوق ده ، كده معناه اننا خدنا object من ال class اللى اسمها node .
-
نفترض ان ال Class اللى عايزين
نستخدمها ديه ليها attribute واحنا عايزين نستخدمها ونضع
لها قيم ، هنعمل ايه ؟؟؟
مثال :
<node h="3" w="4">
</node>
-
فى المثال
السابق نلاحظ وجود h و w وهما دول اللى بيمثلوا ال Attributes ،
يعنى لما نحب نستخدم ال Attributes بتاعت ال Class بكتبها جنبها مكان ال h & w ونضع ليهم القيم اللى احنا عايزينها.
-
ولازم ناخد
بالنا لما نستخدم ال Attributes اننا نضع القيم بتاعتهم مابين double quotation يعنى ما بين " " .
-
نكتفى
بالجزء ده فى ال xml المهم نفهم اللى فات كويس جدا والموضوع هيبقى واضح اكتر لما ندخل
فى ال layout اللى فى الاندرويد .
-
نتكلم دلوقتى عن شويه ملاحظات كده فى
الاندرويد :
-
ازاى ممكن نغير ال icon بتاعت ال application بتاعنا ؟؟؟
هندخل فى ال
manifest file وهنلاقى الشكل ده :
1-
مبدئيا لما بفتح ال manifest file نضغط على AndroidManifest.xml
اللى موجوده فى اسفل الصورة ، وبكده نفهم ان ال manifest ده عبارة عن
xml file
.
-
نلاحظ ايضا ان <application
زيها زى ال node اللى
شرحناها فى اول الدرس يعنى ايه ؟؟ يعنى application ديه عبارة
عن Class
وكده كأننا بناخد object
منها ، وكل الكلام اللى جنبها زى ال icon & label والكلام التانى عبارة عن attribute داخل ال application .
-
عشان نغير ال icon الخاص بال
application هنلاحظ android:icon= وهو ده المكان اللى بنغير فيه ال icon الخاص بال application ، ازاى
نغيّره اصلا ؟؟؟
-
هنلاحظ فى الشكل السابق الكلام ده "@drawable/ic_launcher" والكلام ده معناه ان لما نحب نغير اى
صورة فى ال application مش مجرد icon
بس
هنعمل ايه ؟؟ هنحط الصورة اللى عايزينها فى ال folder اللى اسمه drawable وده شرحناه الدرس السابق بالتفصيل ، وديه الطريقه اللى بستخدم
بيها الصور اللى فى ال folder ده اننا نكتب "@drawable/" والكلمه اللى بعد العلامه ديه / هى عبارة عن اسم الصورة اللى عايزين نستخدمها
ومن هنا بتغير الصور اللى احنا عايزينها ، والطريقة ديه مش هتعملنا بس ازاى نغير icon احنا كده اتعملنا ازاى نستخدم الصور من داخل ال
xml file
فى الاندرويد .
2-
ازاى نغير الاسم الخاص بال application بتاعنا ؟؟؟
نرجع للصورة اللى فاتت ونشوف ، هنلاحظ android:label="@string/app_name" وده المكان اللى بنغيّر منه ال label يعنى الاسم
الخاص بال application ، بس يعنى ايه @string ؟؟ يوجد ملف اسمهstrings ده عبارة عن file موجود داخل
ال res à values à
strings.xml
ولو فتحنا ال file
ده هنلاقية كده :
-
وال file ده عبارة عن xml
file
بنكتب فيه كل ال strings
اللى بنستخدمها فى ال application وكل string بنعمله
بياخد مننا اسم زى اول واحد كده اللى عليه مربع احمر ، هو ده اللى موجود فى ال manifest file فى الجزء
الخاص بتغيير ال application name ، هنلاقى "@string/app_name" موجود ، وده
معناه ان البرنامج دخل جوه ال string file وراح جاب ال string
اللى اسمه app_name اللى انا فى
البرنامج عندى اسمه TestProject ، كل اللى فات فى الجزء الخاص
بتغيير ال application name مش مجرد هنستخدمه بس فى حاله تغيير ال application
name
، احنا كده اتعملنا ازاى نتعامل مع ال strings
file
ولو عايزين نضيف string
جديد هنكتب كده داخل ال strings file
<string name="My_string">
string test</string>
string test</string>
3-
دلوقتى ان شاء الله هنتكلم عن ال layout وزى ما
قولنا قبل كده هو بيمثل ال user interface اللى من خلاله ال user بيتعامل مع
ال application ، وهنلاحظ واحنا بنعمل new android application ان البرنامج هيعملنا من نفسه layout واحد واحنا
بقه لو عايزين نزود عدد ال layout براحتنا نعمل اللى احنا
عايزينه على حسب احتياجتنا فى ال application ، وده شكل ال layout اللى البرنامج بيعمله وبيكون
اسمه activity_main.xml :
-
هنشرح اللى موجود فى الشكل السابق بس قبلها
لازم نعرف حاجات مهمة وهى :
Concept of Design in android
-
View
: عبارة عن كل
الادوات اللى بنستخدمها فى ال design الخاص بال layout زى الامثلة اللى موجوده فى الشكل السابق : TextView وده بيظهر فيه ال Text وال ImageView وده
بنستخدمه لو عايزين نضع صورة فى الlayout وال ListView اللى بنعرض فيها قائمة من اى
حاجه احنا عايزينها ، وطبعا الامثلة اللى موجوده ديه مش كلها فيه غيرها كتير ، ومع
عمل اكتر من application
هنكتشف فايدة ال Views
ديه وطريقة استخدامها .
-
View
Group: وده عبارة عن الوعاء اللى بيحتوى على ال Views اللى فى الlayout
وامثلة ال ViewGroup موجوده فى
الشكل السابق ، ولو لاحظنا فى الصورة الخاصة بال layout (activity_main.xml) هنلاقى فى بداية ال file مكتوب <RelativeLayout وهو ده ال ViewGroup
اللى فى ال file
اللى بيحتوى كل ال Views
اللى داخل ال file.
-
اكتر ViewGroup بنستخدمه فى الاندرويد هما ال LinearLayout وال RelativeLayout ، بس ايه هو
الفرق بينهم ؟؟؟
1-
RelativeLayout
: فى هذا ال ViewGroup بنقدر نضع ال Views اللى جواه فى اى مكان فى الشاشة مجرد ما اسحب ال View واعملّه Drag and drop فى اى مكان فى الشاشة بيقبل عادى انه يكون فى اى مكان عكس ال LinearLayout ، بس لازم نجرب الكلام ده
بأيدينا .
2-
LinearLayout
: وهذا النوع من ال ViewGroup يحتوى على نوعين وهما :
-
Vertical
LinearLayout : وده بيقسم ال Views
فى الشاشة بالشكل ده
-
لما
بنستخدمه بيرتب ال Views تحت بعض كما فى الشكل السابق Vertical
-
Horizontal
LinearLayout : وده بيقسم ال Views
فى الشاشة بالشكل ده
-
لما بنستخدمه بيرتب ال Views جنب بعض كما
فى الشكل السابق horizontal
·
ملحوظة : نقدر نستخدم ViewGroup داخل ViewGroup على حسب احنا
عايزين شكل ال layout
يكون عامل ازاى .
مثال عايزين نطبق الشكل ده :
-
فى المثال السابق هنتعلم ازاى نفكر فى عمل
شكل ال layout
:
-
اولاً : هنلاقى ان الشكل كله متقسم تحت بعض يبقى نفهم من كده ان
ال ViewGroup
اللى هيضم الشكل كله هيكون عبارة عن LinearLayout Vertical
-
ثانياً : هنلاقى ان اول Row عبارة عن
اكتر من View
متقسمين جنب بعض ، يبقى اول Row لوحده هيكون عبارة عن LinearLayout
horizontal وجواه كل ال Views الموجوده .
-
ثالثاً : هنلاقى ان ال row الثانى
عبارة عن View
لوحده مش معاه حاجه تانيه ، يبقى هنحطه لوحده من غير ان ViewGroup معاه
-
رابعاً : هنلاقى الRow الثالث زى ال Row الاول ، يبقى هنقسمه برده زى الاول ونضعه داخل LinearLayout
horizontal
-
ملحوظة : بنستخدم ال RelativeLayout فى حالة
اننا نلاقى View هنثبته فى اول او فى اخر او فى اى مكان فى ال layout ، يعنى ال linear هى الافضل
فى الاستخدام لكن بنلجأ إلى استخدام ال Relative فى حالة
اننا عايزين نثبت View
فى مكان معين فى ال layout
.
-
وده الحل النهائي اللى هيكون عليه المثال
السابق :
-
يوجد معايير اساسية لازم واحنا بنعمل View او ViewGroup تكون موجوده
وهم : 1- Width 2- height
لازم يكونوا موجودين ومن غيرهم هيظهر لنا Error لكن فى
معيار ثالث هو من غيره مش هيظهر Error لكن احنا ك developer بنحتاجه جدا
جدا وهو :
3-
Id : فى حالة اننا هنستخدم ال View فى الjava
classes لازم نكون حاطين id لل View عشان نقدر
نستخدمه ، وده شكل ال View
لما نحطله width and height and id
-
واحنا بنحط ال width and
height
لأى View بيكونوا عبارة
عن :
1-
Match_parent : وده معناه ان ال width or
height
زى ال parent
بتاع ال view
ده يعنى لو ال parent
واخد عرض الشاشة كلها يبقى هياخد نفس العرض او لو واخد عرض او طول معين برده هياخد
نفس العرض او الطول والparent هنا هو ال RelativeLayout.
2- Wrap_content : وده معناه على قد المحتوى بتاع ال View هيكون حجم الطول او العرض
3- Num dp"" : وnum هنا
هنعوض عنها بأى رقم ، وdp معناها dependent pixel ، وده معناه اننا بنحط قيمة محددة لل width او لل height .
-
ازاى
نحط id لأى View ؟؟؟ بنكتب
"@+id/View
Name" .
وبكده نكون خلصنا الدرس النهارده
وهناخد task على درس النهارده عشان تتعودوا تعملوا layout
-
Task :
عايزين ننفذ الشكل ده ، فكروا كده
على ورقة ازاى ممكن ننفذه زى المثال اللى خدناه فى الدرس النهارده :
-
يارب تكونوا ستفدوا من الدرس وبالتوفيق يارب
السلام عليكم ورحمة الله
وبركاته
No comments:
Post a Comment