<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
><channel><title>Ardroid &#124; أردرويد &#187; مطورون</title> <atom:link href="http://ardroid.com/tag/%d9%85%d8%b7%d9%88%d8%b1%d9%88%d9%86/feed/" rel="self" type="application/rss+xml" /><link>http://ardroid.com</link> <description>أندرويد للمستخدمين العرب</description> <lastBuildDate>Sat, 11 Feb 2012 14:15:07 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>آلاف الأيقونات المجانية للاستخدام في تصميم تطبيقات أندرويد (للمطورين)</title><link>http://ardroid.com/2011/09/24/thousands-of-free-icons-to-use-in-android-applications-for-developers/</link> <comments>http://ardroid.com/2011/09/24/thousands-of-free-icons-to-use-in-android-applications-for-developers/#comments</comments> <pubDate>Sat, 24 Sep 2011 12:16:46 +0000</pubDate> <dc:creator>أنس المعراوي</dc:creator> <category><![CDATA[برمجة أندرويد]]></category> <category><![CDATA[Android Development]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Icons]]></category> <category><![CDATA[أيقونات]]></category> <category><![CDATA[تطوير]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=10052</guid> <description><![CDATA[سواء كنت مطوراً محترفاً أو مبتدئاً أو حتى ما زلت تخطط بعد للتطوير لمنصة الهواتف الذكية الأكثر انتشارً في العالم .. أندرويد, فلا بد أن أهم مافي التطبيق هو التصميم الجميل والجذاب الذي يعطي انطباعاً أولياً لدى المستخدم. مهما كان تطبيقك ممتازاً من الناحية البرمجية فسيفقد الكثير من بريقه لو لم يكن ذو واجهات جذابة.&#8230; <a
href="http://ardroid.com/2011/09/24/thousands-of-free-icons-to-use-in-android-applications-for-developers/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="295" height="295" src="http://ardroid.com/wp-content/uploads/2011/09/transdroid-banner21.png" class="attachment-large" alt="transdroid-banner21" title="transdroid-banner21" /><p>سواء كنت مطوراً محترفاً أو مبتدئاً أو حتى ما زلت تخطط بعد للتطوير لمنصة الهواتف الذكية الأكثر انتشارً في العالم .. أندرويد, فلا بد أن أهم مافي التطبيق هو التصميم الجميل والجذاب الذي يعطي انطباعاً أولياً لدى المستخدم. مهما كان تطبيقك ممتازاً من الناحية البرمجية فسيفقد الكثير من بريقه لو لم يكن ذو واجهات جذابة.</p><p>بالطبع ليس من المطلوب منك (وليس من المفترض) أن تكون مبرمجاً ومصمماً في نفس الوقت وهذه هي المشكلة. لكن إن لم تكن ترغب بالاستعانة بمصمم خارجي من أجل الواجهات وبشكل خاص الأيقونات, قام موقع <a
href="http://www.tehkseven.net/news/12-stunning-icon-packs-for-android-phones" target="_blank">thekseven.net</a> بعمل رائع وهو تصميم ما يقارب الـ 4000 أيقونة المصممة خصيصاً كي يتم استخدامها ضمن تطبيقات أندرويد, هذه الأيقونات مقسمة إلى 12 مجموعة وتلبي جميع الاحتياجات المطلوبة في التطبيق والأهم من ذلك فالمصمم يقدمها مجاناً بحيث تستطيع استخدامها سواء كان تطبيقك مجانياً أو تجارياً على حدٍ سواء!</p><p
style="text-align: right;"><a
href="http://www.tehkseven.net/news/12-stunning-icon-packs-for-android-phones"><img
class="aligncenter size-large wp-image-10053" title="Selection_006" src="http://ardroid.com/wp-content/uploads/2011/09/Selection_006-600x414.png" alt="" width="600" height="414" /></a></p><p
style="text-align: right;">لو كنت مطوراً وكانت هذه الأيقونات مدفوعة لاشتريتها بلا تردد, لكنها متوفرة مجاناً للجميع كما اعتدنا دائماً على توفر الأمور الرائعة المجانية بالنسبة لكل من يعمل في التطوير لأنظمة التشغيل ولغات البرمجة مفتوحة المصدر. تستطيع تحميل الأيقونات <a
href="http://www.tehkseven.net/news/12-stunning-icon-packs-for-android-phones" target="_blank">من هنا</a>.</p><p
style="text-align: right;">[<a
href="http://www.tehkseven.net/news/12-stunning-icon-packs-for-android-phones" target="_blank">Tehkseven</a>] عبر [<a
href="http://www.androidpolice.com/2011/09/23/android-developers-this-guy-created-thousands-of-android-icons-you-can-use-in-your-apps-theyre-free-and-look-great/" target="_blank">Android Police</a>]</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/09/24/thousands-of-free-icons-to-use-in-android-applications-for-developers/feed/</wfw:commentRss> <slash:comments>9</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/09/transdroid-banner21-200x200.png" /> </item> <item><title>Motorola Xoom سيحصل على أندرويد 3.2 قريباً؟</title><link>http://ardroid.com/2011/07/08/motorola-xoom-getting-android-3-2-soon/</link> <comments>http://ardroid.com/2011/07/08/motorola-xoom-getting-android-3-2-soon/#comments</comments> <pubDate>Fri, 08 Jul 2011 18:59:37 +0000</pubDate> <dc:creator>لؤي العقاد</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[حواسب لوحية]]></category> <category><![CDATA[Android 3.2]]></category> <category><![CDATA[Honeycomb]]></category> <category><![CDATA[Motorola]]></category> <category><![CDATA[Motorola Xoom]]></category> <category><![CDATA[حاسب لوحي]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=9372</guid> <description><![CDATA[تحدثت إشاعات كثيرة مؤخراً عن نسخة قرص العسل الجديدة من أندرويد 3.2, كما ذكرنا سابقاً ما هي أهم الإضافات الجديدة التي قد تحتويها هذه النسخة التي كشفت عنها هواوي حين أعلنت عن حاسبها اللوحي الجديد MediaPad, لكن هناك دلائل جديدة تفيد أن أول حاسوب لوحي سيحصل على أندرويد 3.2 قد يكون هو Xoom من موتورولا. ففي نقاش حول Xoom و أندرويد 3.1 على مجموعة تطوير الأندرويد, ذكر&#8230; <a
href="http://ardroid.com/2011/07/08/motorola-xoom-getting-android-3-2-soon/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="450" height="412" src="http://ardroid.com/wp-content/uploads/2011/07/New-Motorola-Xoom-Tablet-2011-2.jpg" class="attachment-large" alt="Motorola Xoom Tablet" title="Motorola Xoom Tablet" /><p>تحدثت إشاعات كثيرة مؤخراً عن نسخة قرص العسل الجديدة من أندرويد 3.2, كما <a
href="http://ardroid.com/2011/06/21/android-3-2-new-honeycomb-version-with-7-inch-screen-support-and-qualcomm-chip/">ذكرنا سابقاً</a> ما هي أهم الإضافات الجديدة التي قد تحتويها هذه النسخة التي كشفت عنها هواوي حين <a
href="http://ardroid.com/2011/06/21/huawei-unveils-mediapad-with-7-inch-screen-and-android-3-2/">أعلنت عن حاسبها اللوحي الجديد MediaPad</a>, لكن هناك دلائل جديدة تفيد أن أول حاسوب لوحي سيحصل على <a
href="http://ardroid.com/tag/android-3-2/">أندرويد 3.2</a> قد يكون هو Xoom من موتورولا.</p><p><a
rel="attachment wp-att-9374" href="http://ardroid.com/2011/07/08/motorola-xoom-getting-android-3-2-soon/new-motorola-xoom-tablet-2011-2/"><img
class="aligncenter size-full wp-image-9374" title="Motorola Xoom Tablet" src="http://ardroid.com/wp-content/uploads/2011/07/New-Motorola-Xoom-Tablet-2011-2.jpg" alt="" width="450" height="412" /></a></p><p>ففي <a
href="http://code.google.com/p/android/issues/detail?id=16992">نقاش</a> حول <a
href="http://ardroid.com/tag/motorola-xoom/">Xoom</a> و أندرويد 3.1 على مجموعة تطوير الأندرويد, ذكر شخص على ما يبدو أنه من فريق عمل غوغل <a
href="http://code.google.com/p/android/issues/detail?id=16992#c28">في تعليق له</a> أن حاسوب <a
href="http://ardroid.com/tag/motorola/">موتورولا</a> اللوحي سيحصل على أندرويد 3.2 خلال &#8220;بضعة أيام&#8221;, يمكنك ملاحظة التعليق في الصورة التالية:</p><p><img
class="aligncenter" title="تعليق أحد مطوري أندرويد على Xoom و أندرويد 3.2" src="http://www.talkandroid.com/wp-content/uploads/2011/07/android_32_xoom1-420x51.jpg" alt="" width="420" height="51" /></p><p>نحن لا نطيق الانتظار لنرى النسخة الجديدة من <a
href="http://ardroid.com/tag/honeycomb/">قرص العسل</a>, و سنخبركم فور علمنا بالنسخة الجديدة التي نتوقع صدورها في الأيام القليلة المقبلة.</p><p>[<a
href="http://www.androidcentral.com/android-32-coming-motorola-xoom-matter-days">Android Central</a>]</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/07/08/motorola-xoom-getting-android-3-2-soon/feed/</wfw:commentRss> <slash:comments>11</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/04/Image-4-Motorola-Xoom-Wifi-Gray-High-POV-Home-200x200.jpg" /> </item> <item><title>صدور النسخة النهائية CyanogenMod 7 مع هدية رائعة</title><link>http://ardroid.com/2011/04/11/cyanogenmod-7-0-released/</link> <comments>http://ardroid.com/2011/04/11/cyanogenmod-7-0-released/#comments</comments> <pubDate>Mon, 11 Apr 2011 10:32:51 +0000</pubDate> <dc:creator>بدري دركوش</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android 2.3.3]]></category> <category><![CDATA[Cyanogen MOD]]></category> <category><![CDATA[Gingerbread]]></category> <category><![CDATA[HTC]]></category> <category><![CDATA[HTC Desire]]></category> <category><![CDATA[Nexus One]]></category> <category><![CDATA[Nexus S]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[ر]]></category> <category><![CDATA[رومات]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=8325</guid> <description><![CDATA[بعد أكثر من 4 أشهر من العمل و العديد من الليالي الطوال، والمساهمات من المطورين من جميع أنحاء العالم، أطلق فريق CyanogenMod 7 النسخة النهائية من الروم الشهيرة. النسخة CM7 مبنية على الكود المصدري لنسخة أندرويد 2.3.3 (خبز الزنجبيل), مع إضافة الكثير من الميزات الرائعة من CM6 التي نعرفها ونحبها،  أخرى جديدة بما في ذلك&#8230; <a
href="http://ardroid.com/2011/04/11/cyanogenmod-7-0-released/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="360" height="600" src="http://ardroid.com/wp-content/uploads/2011/04/snap20110411_090937-360x600.png" class="attachment-large" alt="snap20110411_090937" title="snap20110411_090937" /><p>بعد أكثر من 4 أشهر من العمل و العديد من الليالي الطوال، والمساهمات من المطورين من جميع أنحاء العالم، أطلق فريق CyanogenMod 7 النسخة النهائية من الروم الشهيرة.<br
/> النسخة CM7 مبنية على الكود المصدري ل<a
href="http://ardroid.com/2010/12/07/everything-you-need-to-know-about-android/" target="_blank">نسخة أندرويد 2.3.3 (خبز الزنجبيل)</a>, مع إضافة الكثير من الميزات الرائعة من CM6 التي نعرفها ونحبها،  أخرى جديدة بما في ذلك دعم العديد من الأجهزة. اصبحت تدعم حاليا 30 جهاز تتضمن العديد من الحاسبات اللوحية! هذه النسخة مستقرة بشكل كافي للاستخدام العملي و المتقدم.</p><p>لمعرفة كل الميزات الجديد في هذه النسخة يمكنك أن تمر على <a
href="https://github.com/CyanogenMod/android_vendor_cyanogen/blob/gingerbread/CHANGELOG.mkdn" target="_blank">هذه القائمة الكاملة</a>. بالنسبة إلى الأجهزة المدعومة فيمكنك اختيار جهازك من <a
href="http://www.cyanogenmod.com/devices" target="_blank">هذه القائمة هنا</a>,  عند اختيار  جهازك تستطيع الحصول على روابط التحميل و التعليمات لتركيب الروم أو التحديث من النسخة السابقة.</p><p>أما عن الهدية, فهو خبر سار لكل المستخدمين العرب, هذه النسخة تدعم اللغة العربية و بشكل كامل مع المحاذاة و خط عربي مميز و أنيق, نعم لقد تغلب المطورون و سبقوا غوغل بدعم اللغة العربية! ما رأيكم بالبرمجيات الحرة (مفتوحة المصدر) الآن! <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p><img
class="size-medium wp-image-8328  alignright" src="http://ardroid.com/wp-content/uploads/2011/04/snap20110411_090858-180x300.png" alt="" width="180" height="300" /><img
class="size-medium wp-image-8329  alignnone" src="http://ardroid.com/wp-content/uploads/2011/04/snap20110411_090937-180x300.png" alt="" width="180" height="300" /></p><p>إذا كنت لا تعرف ما هي CyanogenMod فهي نسخة أندرويد مخصصة مفتوحة المصدر مبنية على الكود المصدري لأندرويد ويقوم على تطويرها مجموعة من المطورين من مجتمع مستخدمي أندرويد, تتميز بأداء ممتاز مع إضافة العديد من الميزات و التعديلات غير المتوفرة بنسخة الأندرويد الأصلية أو الأخرى المقدمة من الشركات. و هي متوفرة لطيف واسع من الأجهزة و بشكل مجاني مع توفر الكود المصدري.</p><p>إذا كنت تستخدم هذه الروم فأخبرنا عن تجربتك الحالية أو السابقة عنها, و إن كنت تستطيع تقديم الدعم المادي لمطوريها فنحن نشجعك على ذلك أيضاً.</p><p>المصدر: <a
href="http://www.cyanogenmod.com/blog/cyanogenmod-7-0-released" target="_blank">CyanogenMod</a></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/04/11/cyanogenmod-7-0-released/feed/</wfw:commentRss> <slash:comments>176</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/04/11x0411b61wc.jpg" /> </item> <item><title>إطلاق النسخة النهائية من حزمة التطوير لأندرويد 3.0</title><link>http://ardroid.com/2011/02/23/final-android-3-0-sdk-released/</link> <comments>http://ardroid.com/2011/02/23/final-android-3-0-sdk-released/#comments</comments> <pubDate>Wed, 23 Feb 2011 13:31:24 +0000</pubDate> <dc:creator>أنس المعراوي</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android 3.0]]></category> <category><![CDATA[Android SDK]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[Honeycomb]]></category> <category><![CDATA[Motorola Xoom]]></category> <category><![CDATA[تطوير]]></category> <category><![CDATA[تطوير أندرويد]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=7616</guid> <description><![CDATA[أطلقت غوغل اليوم النسخة النهائية من حزمة التطوير SDK الخاصة بنسخة أندرويد 3.0 &#8211; Honeycomb, بعد أن كانت قد أطلقت الشهر الماضي نسخة مبكرة وتجريبية من نفس الحزمة. النسخة النهائية من الـ SDK تعني بأن المطورين الذين طوروا تطبيقاتهم بناءاً على النسخة التجريبية السابقة يستطيعون الآن اختبارها بشكل نهائي على النسخة الجديدة ثم إطلاقها إلى&#8230; <a
href="http://ardroid.com/2011/02/23/final-android-3-0-sdk-released/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="600" height="375" src="http://ardroid.com/wp-content/uploads/2011/02/246646435-600x375.png" class="attachment-large" alt="246646435" title="246646435" /><p>أطلقت غوغل اليوم النسخة النهائية من حزمة التطوير SDK الخاصة بنسخة أندرويد 3.0 &#8211; Honeycomb, بعد أن كانت قد أطلقت الشهر الماضي نسخة مبكرة وتجريبية من نفس الحزمة.</p><p><span
id="more-7616"></span>النسخة النهائية من الـ SDK تعني بأن المطورين الذين طوروا تطبيقاتهم بناءاً على النسخة التجريبية السابقة يستطيعون الآن اختبارها بشكل نهائي على النسخة الجديدة ثم إطلاقها إلى سوق أندرويد فوراً, بحيث سيستطيع المستخدمون تحميل التطبيقات الخاصة بقرص العسل على حاسب Motorola Xoom الذي سيصبح متوفراً في الولايات المتحدة بدءاً من يوم غد.</p><p>ترافق مع إطلاق الحزمة الجديدة أيضاً إطلاق نسخة محدثة من الإضافة الخاصة بـ Eclipse والتي تمكن المطورين من تطوير تطبيقات أندرويد بشكل أفضل وأسرع ومن المتوقع أن يتم إطلاق الكود المصدري لأندرويد 3.0 خلال الساعات القادمة.</p><p><a
href="http://ardroid.com/wp-content/uploads/2011/02/thumb_550_Android_SDK.png" rel="lightbox[7616]"><img
class="aligncenter size-full wp-image-7618" title="thumb_550_Android_SDK" src="http://ardroid.com/wp-content/uploads/2011/02/thumb_550_Android_SDK.png" alt="" width="550" height="322" /></a></p><p><a
href="http://ardroid.com/wp-content/uploads/2011/02/246645607.png" rel="lightbox[7616]"><img
class="aligncenter size-large wp-image-7619" title="246645607" src="http://ardroid.com/wp-content/uploads/2011/02/246645607-600x376.png" alt="" width="600" height="376" /></a></p><p><a
href="http://ardroid.com/wp-content/uploads/2011/02/246646435.png" rel="lightbox[7616]"><img
class="aligncenter size-large wp-image-7620" title="246646435" src="http://ardroid.com/wp-content/uploads/2011/02/246646435-600x375.png" alt="" width="600" height="375" /></a></p><p>[<a
href="http://android-developers.blogspot.com/2011/02/final-android-30-platform-and-updated.html" target="_blank">Android Developers blog</a>]</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/02/23/final-android-3-0-sdk-released/feed/</wfw:commentRss> <slash:comments>30</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/01/honeycomb-bee-550x550-540x540.png" /> </item> <item><title>مقابلة مع المطور أيمن السند</title><link>http://ardroid.com/2011/01/16/ayman-alsanad-interview/</link> <comments>http://ardroid.com/2011/01/16/ayman-alsanad-interview/#comments</comments> <pubDate>Sun, 16 Jan 2011 08:47:30 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[أيمن السند]]></category> <category><![CDATA[اللغة العربية]]></category> <category><![CDATA[مطورون]]></category> <category><![CDATA[مقابلة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6863</guid> <description><![CDATA[كلنا يعرف بأن التعريب الرسمي لنظام أندرويد لم يرَ النور بعد. ولكن جهوداً حثيثة بُذلت في مضمار التعريب غير الرسمي، ولعل اسم المطور أيمن السند هو الاسم الأبرز في هذا المجال. يُصدر المطور أيمن السند نسخاً معربة من نظام الأندرويد بشكل دوري على مختلف الأجهزة وينشرها في موقعه، أردويد. ولا يتأخر لحظة عن حل المشاكل&#8230; <a
href="http://ardroid.com/2011/01/16/ayman-alsanad-interview/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="180" height="277" src="http://ardroid.com/wp-content/uploads/2011/01/ayman-Sanad.jpg" class="attachment-large" alt="ayman Sanad" title="ayman Sanad" /><p>كلنا يعرف بأن التعريب الرسمي لنظام أندرويد لم يرَ النور بعد. ولكن جهوداً حثيثة بُذلت في مضمار التعريب غير الرسمي، ولعل اسم المطور <a
href="http://ardroid.com/tag/%D8%A3%D9%8A%D9%85%D9%86-%D8%A7%D9%84%D8%B3%D9%86%D8%AF/">أيمن السند</a> هو الاسم الأبرز في هذا المجال.</p><p>يُصدر المطور أيمن السند نسخاً معربة من نظام الأندرويد بشكل دوري على مختلف الأجهزة وينشرها في موقعه، <a
href="http://ardoid.com/">أردويد</a>. ولا يتأخر لحظة عن حل المشاكل المصاحبة لهذا النوع من العمل غير السهل، وتجاوبه السريع مع المستخدمين في <a
href="http://twitter.com/aalsanad">حسابه على تويتر</a> خير دليل.</p><p>كان لنا لقاء سريع مع الأخ المطور أيمن السند عبر البريد الالكتروني. نترككم مع نص اللقاء.</p><div
id="attachment_6865" class="wp-caption aligncenter" style="width: 190px"><a
rel="attachment wp-att-6865" href="http://ardroid.com/2011/01/16/ayman-alsanad-interview/ayman-sanad/"><img
class="size-full wp-image-6865" title="ayman Sanad" src="http://ardroid.com/wp-content/uploads/2011/01/ayman-Sanad.jpg" alt="" width="180" height="277" /></a><p
class="wp-caption-text">أيمن السند</p></div><p
dir="rtl"><p
dir="rtl"><span
style="color: #0000ff;">متى كانت أول مرة اطلعت فيها على منصة الأندرويد؟ وهل راودتك فكرة تعريبه منذ الوهلة الأولى؟</span></p><p
dir="rtl">ربما كنت من الأوائل الذين تمكنوا من تجربة النظام على الجهاز الأقدم من HTC والمسمى G1  ، الحقيقية ان النظام كان بسيطا جداً ، لكن وقوف غوغل خلف النظام كان سببا كافيا كي أستبشر بمستقبل النظام. وهاهو اليوم كما ترون يشق طريقه إلى الصدارة.</p><p
dir="rtl"><span
style="color: #0000ff;">مالذي جذبك في منصة الأندرويد (من النواحي التقنية وغيرها)؟</span></p><p
dir="rtl">في البداية لن أتحدث عن جمال الواجهه أو سلاسة الاستخدام ، فالنظام كان بسيطا على الأرجح ، لكنني أحب التغيير واستكشاف التقنية لحظة بزوغها ، هذه طبيعتي.</p><p
dir="rtl">انجذبت أكثر حينما رأيت غوغل تسعى حثيثا إلى تطوير النظام بوتيرة سريعة جدا ، وكنت في كل فترة أرى شيئا جديدا يحفزني للبقاء أكثر.</p><p
dir="rtl">أندرويد مفتوح المصدر مايعني مرونة بلاحدود وبقدر المتعة التي نحصل عليها من هذه المرونة فإننا ندفع ثمنا لابأس به في عدم التوافق بين الأجهزة المتعددة.</p><p
dir="rtl"><span
style="color: #0000ff;">مالذي يفرق عمليا في تعريب رومات الأجهزة المصنعة من نفس الشركة، فمثلا نجد تعريبا خاصا بجهاز الHTC Incredible وآخر لل HTC Desire؟</span></p><p
dir="rtl">كما قلت سابقا، أندرويد مفتوح المصدر ، ولهذا تقوم بعض الشركات بتخصيص وبناء واجهات مبتكره إلى النظام. هذه الواجهات تضفي قدرا كبيرا إلى جمال النظام لكنها تؤثر تأثيرا مباشرا في مدى التوافق بين النظام الاصلي من غوغل والأنظمة المعدلة سواء من HTC  أو Motorola أو أي شركة أخرى.</p><p
dir="rtl">كل التعريبات التي أقوم بها هي نسخة من النظام الأصلي من غوغل وليس من النسخ المعدلة وهذه يجعل التوافق بينها وبين النسخ المعدلة مستحيلا في بعض الأحيان. ولتطوير التعريب المناسب لكل جهاز لابد من ايجاد التعديلات التي تمت بواسطة كل شركة وإضافة التعريب إليها كل على حدة. (تذكر ان هناك العشرات والعشرات من الأجهزة وهذا مايجعل التطوير لها صعبا للغاية)</p><p
dir="rtl"><span
style="color: #0000ff;">هل يمكن شرح عملية التعريب التي تقوم بعملها بشكل بسيط؟ وعملية طبخ الروم؟</span></p><p
dir="rtl">التعريب ببساطة هو تعديل في محرك الرسم الداخلي في النظام (Graphics Engine) في النظام حتى يقوم برسم الحروف العربية بناء على موقع الحرف من الجملة.</p><p
dir="rtl">أما طبخ الروم (خارج الاختصاص) فهي تعني وصفة تتكون من نظام التشغيل مضافا إليها بعض البرامج (بحسب رغبة مطور الروم) ، وغالبا ماتتميز الرومات المطبوخة ببعض التحسينات في واجهة النظام أو في أداء النظام.</p><p
dir="rtl"><span
style="color: #0000ff;">ماهو عادة السبب الذي يمنع\يوقف الرومات والنسخ المعربة التي تقوم بإنتاجها من العمل بعد تنصيب التحديثات على بعض الأجهزة؟ وفي المقابل، ماهو سبب نشوء بعض المشاكل على مستوى وظائف الجهاز بعد تنصيب بعض النسخ من الرومات؟</span></p><p
dir="rtl">نفس السبب السابق ، أحيانا تقوم الشركات باضافة بعض التعديلات الجديدة ويكون حينها لزاما أن نقوم ببناء التعريب مرة أخرى.</p><p
dir="rtl"><span
style="color: #0000ff;">في حال ظهر الدعم الرسمي للعربية على أندرويد، هل ستجسد تلك اللحظة نهاية عملك في مجال تعريب أندرويد؟ (في حال لا، ماهو الشيء الذي ستوفره؟)</span></p><p
dir="rtl">نعم ، في مجال التعريب سوف تكون النهاية وأتمنى أن تكون قريبة حتى ينعم الجميع بأندرويد يتحدث العربية ، وإذا لم يكن فلاخوف ، التعريب سيستمر وأتمنى أن نتوصل إلى طريقة أسهل مماهي عليه الآن.</p><p
dir="rtl"><span
style="color: #0000ff;">هل كانت لديك خبرة سابقة في العمل على الأجهزة الكفية والجوالات؟</span></p><p
dir="rtl">نعم ، وطورت عدة برامج للأجهزة الكفية من مايكروسوفت كان منها برنامج سوبر موجود ربما لايزال يتذكره البعض.</p><p
dir="rtl"><span
style="color: #0000ff;">ماهي أكثر ٣ تطبيقات تستخدمها؟</span></p><p>Browser</p><p>Twitter</p><p>Notes</p><p
dir="rtl"><span
style="color: #0000ff;">ماهي نصائحك لمطوري ومستخدمي الأندرويد العرب؟</span></p><p
dir="rtl"><strong>أولا</strong>: على قدر ماتكون الارداة يكون الانتاج أما المستحيل فعذر الكسالى.</p><p
dir="rtl"><strong>ثانيا</strong>: في عصرنا الحاضر أصبحت الأفكار أكثر قيمة من أي شيء آخر ، فكر بالفكرة المناسبة وابدأ بالتطوير ، وسوف تجد الطريق ممهدا أمامك ، أكرر الأفكار هي الأهم.</p><p
dir="rtl"><span
style="color: #0000ff;">من هو أيمن؟</span></p><p
dir="rtl">انسان بسيط ، ولد ونشأ في الرياض ، مغرم بالتقنية ، ومحب للتفكير غير الاعتيادي ، يسعى حثيثا إلى تطوير نفسه ونفع أمته.</p><p
dir="rtl"><span
style="color: #0000ff;">كلمة أخيرة.</span></p><p
dir="rtl">شكرا اردرويد.</p><p
dir="rtl">&#8211;</p><p
dir="rtl"><strong>نشكر المطور أيمن السند على إتاحة الفرصة لنا للقاء به، ونتمنى له كل التوفيق والنجاح على جميع الأصعدة.</strong></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/01/16/ayman-alsanad-interview/feed/</wfw:commentRss> <slash:comments>27</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/01/android-ar.jpg" /> </item> <item><title>مقابلة مع المطور عبدالعزيز الحسين</title><link>http://ardroid.com/2011/01/04/azizhuss-interview/</link> <comments>http://ardroid.com/2011/01/04/azizhuss-interview/#comments</comments> <pubDate>Tue, 04 Jan 2011 08:08:02 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[اللغة العربية]]></category> <category><![CDATA[عبد العزيز الحسين]]></category> <category><![CDATA[مطورون]]></category> <category><![CDATA[مقابلة]]></category><guid
isPermaLink="false">http://ardroid.com/?p=6373</guid> <description><![CDATA[من منا بحث عن تطبيقات في متجر الأندرويد لتساعده على تجاوز مشكلة عدم دعم اللغة العربية ولم يصادف تطبيقات ممهورة بإسم AzizHuss ؟ أعتقد أن الجواب: لا أحد تطبيقات المطور المبدع عبدالعزيز الحسين جاءت في وقت كان مستخدموا الأندرويد العرب بحاجة ماسة إليها. وكنا قد استعرضنا هذه التطبيقات الممتازة في أردرويد منذ فترة. قمنا بعمل&#8230; <a
href="http://ardroid.com/2011/01/04/azizhuss-interview/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="200" height="200" src="http://ardroid.com/wp-content/uploads/2011/01/android-ar.png" class="attachment-large" alt="android-ar" title="android-ar" /><p>من منا بحث عن تطبيقات في متجر الأندرويد لتساعده على تجاوز مشكلة عدم دعم اللغة العربية ولم يصادف تطبيقات ممهورة بإسم AzizHuss ؟ أعتقد أن الجواب: لا أحد <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>تطبيقات المطور المبدع <a
href="http://android.azizus.info">عبدالعزيز الحسين</a> جاءت في وقت كان مستخدموا الأندرويد العرب بحاجة ماسة إليها. وكنا قد <a
href="http://ardroid.com/2010/08/29/5-arabic-android-apps/">استعرضنا هذه التطبيقات الممتازة في أردرويد منذ فترة</a>.</p><p>قمنا بعمل مقابلة سريعة مع الأخ عبدالعزيز عبر الإيميل، وكانت إجاباته مثيرة للإهتمام، ومؤثرة أيضا. نترككم مع نص المقابلة.</p><div
id="attachment_6417" class="wp-caption aligncenter" style="width: 276px"><a
rel="attachment wp-att-6417" href="http://ardroid.com/2011/01/04/azizhuss-interview/aziz-f/"><img
class="size-full wp-image-6417 " title="aziz f" src="http://ardroid.com/wp-content/uploads/2011/01/aziz-f.jpg" alt="" width="266" height="370" /></a><p
class="wp-caption-text">عبدالعزيز الحسين</p></div><p><span
style="color: #0000ff;">وائل: لماذا قررت تطوير تطبيقات على الأندرويد؟ ما الذي جذبك واستهواك في منصة الأندرويد؟</span></p><p>عبدالعزيز: يقال أن  الحاجة أم الاختراع. في البداية قررت اقتناء جهاز اندرويد فقمت بشراء جهاز Mytouch- <a
href="http://ardroid.com/tag/htc-magic/">HTC Magic</a>. قمت بتجربته في المحل التجاري وأعجبني كثيرا.  قمت بتصفح المواقع العربية وظهرت لي الحروف على شكل مربعات ولم أعطي ذلك اهتماما كثيرا واعتقدت أنه من السهل إضافة اللغة العربية كما حصل مسبقا في الأنظمة الكفية كوندوز وبالم وغيرها.</p><p>بعد امتلاكي للجهاز بحثت عن التعريب فلم اجد هناك طريقة لتعريب الجهاز في ذلك الوقت وحتى بعد إضافة الرووت، لايوجد إلا إضافة الخط.</p><p
dir="rtl">بما اني أحب البرمجة فقلت لابد من عمل برنامج على الأقل يمكنني من قراءة الرسائل النصية التي تشكل أهمية بالنسبة لي . في البداية كان مرسال وكان فقط لاستخدامي الشخصي ولكن قررت ان أضعه على المتجر. واستفدت كثيرا من مقترحات و ملاحظات المستخدمين فالكثير من التحديثات التي طرأت على مرسال هي استجابة لملاحظاتهم واقتراحاتهم.</p><p
dir="rtl">والجدير بالذكر ان بيئة البرمجة لتطبيقات أندرويد هي مناسبة وميسرة لعمل التطبيقات ونشرها بكل سهولة.</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: ماهي الخصائص التي تميز الأندرويد عن باقي المنصات المنافسة برأيك؟ وأين ترى الأندرويد خلال السنتين القادمتين؟</span></p><p
dir="rtl">عبدالعزيز: أعتقد أن من أهم مميزات اندرويد انه مفتوح المصدر. قد لايعني ذلك كثيرا للمستخدم العادي ولكن بالنسبة للشركات صانعي الهواتف الجوالة والذكية فانه يعني لهم الكثير. نجد الان أن معظم الشركات قامت باستخدام اندرويد في بناء اجهزة الجوالات وذلك لحرية الاضافة والتعديل على عكس الانظمة المغلقة كنظام وندوز او الانظمة المحتكرة كنظام بلاك بيري او ابل. وكذلك ايضا قدرة المطورين على التعديل والتطوير على  انظمة اندرويد لاجهزتهم وجعلها مخصصة بشكل أو بآخر.</p><p
dir="rtl">بالإضافة أن دعم شركة غوغل القوي لنظام اندرويد وإلتفات المطورين له سيجعل اندرويد في المقدمة خلال السنوات القادمة. وكذلك فإن تطبيقات شركة غوغل على الأندرويد تعمل بكل كفاءة وبقوة تفوق الانظمة الأخرى كتطبيقات الخرائط وغوغل الصوتي.</p><p
style="text-align: center;" dir="rtl"><a
rel="attachment wp-att-6418" href="http://ardroid.com/2011/01/04/azizhuss-interview/android-ar-3/"><img
class="aligncenter size-full wp-image-6418" title="android-ar" src="http://ardroid.com/wp-content/uploads/2011/01/android-ar.png" alt="" width="160" height="160" /></a></p><p
dir="rtl"><span
style="color: #0000ff;">وائل: ماهي أبرز التحديات التي واجهتك عند تطوير التطبيقات العربية؟</span></p><p
dir="rtl">عبدالعزيز: طبعا أهم المعيقات هي ان اندوريد لايدعم اللغة العربية. فعلى مطور البرامج دعم اللغة العربية بنفسه من إضافة الخطوط للتطبيقات وكذلك توصيل وتركيب الحروف والكلمات.</p><p><span
style="color: #0000ff;"> وائل: هل كانت لديك خبرة سابقة في تطوير تطبيقات للأجهزة الكفية والجوالات؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>قبل تقريبا 4 سنوات اقتنيت جهاز بلاك بيري وكان يدعم قراءة العربية ولكن لايدعم الكتابة. فعملت تطبيق يمكن من خلاله كتابة الرسائل النصية وارسالها. وكان التطبيق شخصي ولم اقم بنشره .</p><p><span
style="color: #0000ff;"> وائل: بالنسبة لمشروع ال ArabicReshaper، هل اكتمل هذا المشروع أم أنك ترغب بإضافة المزيد من الخصائص إليه، وهل هناك مجال مفتوح للمطورين العرب للمساعدة في المشروع؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>بالنسبة لمشروع <a
href="http://code.google.com/p/arabicreshaper/">ArabicReshaper</a> فهو يقوم بمهمة توصيل الحروف العربية وقد اضفت عليه مؤخرا التشكيل والحركات. اعتقد انه ربما يكون هناك الحاجة لاحتواء حالات مركبة من التشكيل كوجود شدة مع كسرة او ضمة. لا اعتقد انها تعمل 100% حاليا في هذا المشروع.</p><p
dir="rtl">وكذلك عند وجود كلمات انجليزية وارقام فان ترتيب الجمل قد لايكون سليماً ويجب القيام بعمل BIDI لترتيبها بالشكل السليم.</p><p><span
style="color: #0000ff;"> وائل: ماهي المصادر التي تعلمت منها برمجة تطبيقات الأندرويد، وأيها الأفضل بالنسبة لك؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>في البداية كنت أقوم بالتدريبات المقدمة من أندرويد. وبعد ذلك استفدت من الكثير من مواقع الانترنت مثل <a
href="http://www.anddev.org/">http://www.anddev.org/</a> . لكن أرى أن هذه الكتب من المطور Mark Murphy قدمت لي طرق مثلى في التعامل مع بعض الصعوبات</p><p
dir="rtl"><a
href="http://commonsware.com/AndTutorials">Android Programming Tutorials</a></p><p><a
href="http://commonsware.com/Android">The Busy Coders Guide to Android Development</a></p><p><a
href="http://commonsware.com/AdvAndroid">The Busy Coders Guide to Advanced Android Development</a></p><p><span
style="color: #0000ff;"> وائل: ماهي الصعوبات والعقبات التي تتمنى حلها سريعا من قبل غوغل (تحسينات في المتجر، الدعم العربي الرسمي، &#8230;) ؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>بالتأكيد الدعم العربي الرسمي لأنه سيزيد من مستخدمي اندرويد العرب. وكذلك دعم الشراء من المتجر للدول العربية.  وشي آخر اعتقد أنه يجب الإهتمام به لأنه يشكل أمور سلبية للمطورين ويمكن النظر له أنه شي ايجابي بالنسبة للمستخدمين وهو حماية حقوق التطبيقات. فسرعان ما تجد أي تطبيق متوفر مجاني عن طريق بعض المواقع. مما يجعل الكثير من المطورين يعتمدون على الإعلانات التي تزعج المستخدم. كمثال لعبة Angry Birds تجدها مجانية بإعلانات بينما في أنظمة الايفون ب قيمة دولار بدون إعلانات.</p><p><span
style="color: #0000ff;"> وائل: ماهي أكثر ٣ تطبيقات تستخدمها؟</span></p><p>عبدالعزيز: gmail</p><p>google Map</p><p>adhan alarm</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: من هو ابراهيم الذي سميت تطبيق لوحة المفاتيح بإسمه ؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>ابراهيم اسم غالي علي فهو اسم والدي الغالي واسم ولدي. سميت لوحة المفاتيح باسم ولدي ابراهيم اسأل الله العلي العظيم أن يشفيه ويشفي جميع مرضى التوحد.</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: مشاريعك الحالية والمستقبلية؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>حاليا جل اهتمامي بإكمال دراستي. ربما اقوم ببعض الإضافات البسيطة للبرامج السابقة او عمل برامج بسيطة.</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: ماهي نصائحك لمطوري الأندرويد العرب؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>التركيز على بعض الافكار التي قد تلقى رواجا في المجتمع العربي حتى لو كانت هذي الافكار مستقاه من بعض البرامج  الأجنبية ولكن يجب تكييفها لمجتمعاتنا.</p><p
dir="rtl"><span
style="color: #0000ff;">وائل: من هو عبدالعزيز؟</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>اسمي عبدالعزيز بن ابراهيم الحسين  من السعودية، متزوج ولي بنت (ريما) وولد (ابراهيم). ادرس حاليا في مرحلة الدكتوراة في <a
href="http://www.uci.edu/">جامعة كاليفورنيا &#8211; ايرفاين</a> في تخصص هندسة الحاسب &#8211; عمارة الحسابات. حصلت على الماجستير من جامعة جنوب كاليفورنيا والبكالريوس من جامعة الملك سعود. أعمل أيضا في <a
href="http://www.kacst.edu.sa/en/Pages/default.aspx">مدينة الملك عبدالعزيز للعلوم والتقنية</a>.</p><p><span
style="color: #0000ff;"> وائل: كلمة أخيرة.</span></p><p
dir="rtl">عبدالعزيز:<span
style="font-family: Arial, Verdana, Helvetica, sans-serif;"><span
style="line-height: 19px;"> </span></span>تقبلوا تحياتي ودعواتكم لإبراهيم بالشفاء.</p><p
dir="rtl"><strong>نشكر المطور عبدالعزيز الحسين لإعطائنا هذه الفرصة، وندعو لإبراهيم بالشفاء، ونتمنى لعبدالعزيز كل التوفيق في دراسته.</strong></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2011/01/04/azizhuss-interview/feed/</wfw:commentRss> <slash:comments>31</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2011/01/android-ar.jpg" /> </item> <item><title>تطبيق &#8220;هواتف&#8221; قادم إلى الأندرويد</title><link>http://ardroid.com/2010/10/06/hwaatef-app/</link> <comments>http://ardroid.com/2010/10/06/hwaatef-app/#comments</comments> <pubDate>Wed, 06 Oct 2010 08:27:27 +0000</pubDate> <dc:creator>مهدي العطية</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[مطورون]]></category> <category><![CDATA[هواتف]]></category><guid
isPermaLink="false">http://ardroid.com/?p=4743</guid> <description><![CDATA[يبدو ان مبرمجي موقع هواتف مشغولون هذه الأيام, نعم هم فعلاً كذلك. ها نحن اليوم وبعد 8 اشهر من إطلاق موقع هواتف على الويب, نحصل في اردرويد على نسخه تجريبية &#8220;جداً&#8221; مخصصه لهواتف الأندرويد وذلك بهدف الإختبار. لمن لم يسبق لهم زيارة هواتف: هواتف هو موقع خدمي، مجّاني، يوفر خدمة البحث عن أرقام هواتف المطاعم&#8230; <a
href="http://ardroid.com/2010/10/06/hwaatef-app/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="200" height="200" src="http://ardroid.com/wp-content/uploads/2010/10/hwatf.jpg" class="attachment-large" alt="hwatf" title="hwatf" /><p>يبدو ان مبرمجي موقع هواتف مشغولون هذه الأيام, نعم هم فعلاً كذلك.<br
/> ها نحن اليوم وبعد 8 اشهر من <a
href="http://www.cdes.ws/2010/02/23/%D9%82%D8%B5%D8%A9-%D9%85%D9%88%D9%82%D8%B9-%D9%87%D9%88%D8%A7%D8%AA%D9%81/">إطلاق موقع هواتف على الويب</a>, نحصل في اردرويد على نسخه تجريبية &#8220;جداً&#8221; مخصصه لهواتف الأندرويد وذلك بهدف الإختبار.</p><p>لمن لم يسبق لهم زيارة <a
href="http://www.hwaatef.com/">هواتف</a>: هواتف هو موقع خدمي، مجّاني، يوفر خدمة البحث عن أرقام هواتف المطاعم في المملكة العربية السعودية.</p><p>التطبيق يقدم خدمه بحث مميزه ومشابه إلى حد كبير تلك التي نحصل عليها عن طريق زيارة الموقع على الويب, قد تكون بيئة الهاتف هي فعلاً البيئة الأفضل لمثل هذه التطبيقات, مطور تطبيق هواتف استفاد من ذلك فعلاً فبعد قيامك بعملية البحث واختيار رقم المطعم المناسب لن تحتاج إلا إلى ضغطه زر واحده وسيقوم هاتفك بالإتصال مباشرة إلى هذا المطعم, ليس هذا وحسب بل وبإمكانك اضافه هذا الرقم إلى جهات إتصال هاتف وبنفس السهوله. أليس هذا رائعاً</p><p>الملاحظه الوحيده على التطبيق هو عدم إمكانيه عرض النتائج المقترحه بعكس تلك التي نحصل عليها عند زيارة الموقع على الويب, شيء مؤسف&#8230; ولكن نتمنى ان نحصل على هذه الخاصيه مبكراً كون مستخدمي الأندرويد لا يحبون الكتابه كثيراً, هل تتفق معي في ذلك <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p><p>بعض الصور عن التطبيق<br
/><a
href='http://ardroid.com/2010/10/06/hwaatef-app/hwaatef1/' title='hwaatef1'><img
width="150" height="150" src="http://ardroid.com/wp-content/uploads/2010/10/hwaatef1-150x150.png" class="attachment-thumbnail" alt="hwaatef1" title="hwaatef1" /></a> <a
href='http://ardroid.com/2010/10/06/hwaatef-app/hwaatef2/' title='hwaatef2'><img
width="150" height="150" src="http://ardroid.com/wp-content/uploads/2010/10/hwaatef2-150x150.png" class="attachment-thumbnail" alt="hwaatef2" title="hwaatef2" /></a> <a
href='http://ardroid.com/2010/10/06/hwaatef-app/hwaatef3/' title='hwaatef3'><img
width="150" height="150" src="http://ardroid.com/wp-content/uploads/2010/10/hwaatef3-150x150.png" class="attachment-thumbnail" alt="hwaatef3" title="hwaatef3" /></a> <a
href='http://ardroid.com/2010/10/06/hwaatef-app/hwaatef4/' title='hwaatef4'><img
width="150" height="150" src="http://ardroid.com/wp-content/uploads/2010/10/hwaatef4-150x150.png" class="attachment-thumbnail" alt="hwaatef4" title="hwaatef4" /></a></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/10/06/hwaatef-app/feed/</wfw:commentRss> <slash:comments>11</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/10/hwatf.jpg" /> </item> <item><title>أندرويد من الليغو!</title><link>http://ardroid.com/2010/09/11/android-lego/</link> <comments>http://ardroid.com/2010/09/11/android-lego/#comments</comments> <pubDate>Sat, 11 Sep 2010 15:36:15 +0000</pubDate> <dc:creator>لؤي العقاد</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Apple]]></category> <category><![CDATA[C]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[iPhone 3G]]></category> <category><![CDATA[Lego]]></category> <category><![CDATA[آبل]]></category> <category><![CDATA[روبوت]]></category> <category><![CDATA[ليغو]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=4279</guid> <description><![CDATA[اليوم هنالك شيء جديد لكل عشاق الأندرويد, ما رأيك بتمثال للروبوت الفضائي الأخضر بارتفاع 40 سم مصنوع بالكامل من قطع الليغو Lego! هذا الروبوت صنعه Grayson Wendell, فقام بكتابة برنامج C يقوم بنفسه بتصميم الروبوت و رسم مخطط له قبل البدء بتنفيذه ليسهل الأمر على نفسه و يوفر الوقت بدل من إضاعته على الأخطاء, أليس&#8230; <a
href="http://ardroid.com/2010/09/11/android-lego/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="539" height="600" src="http://ardroid.com/wp-content/uploads/2010/09/android-lego-3.jpg" class="attachment-large" alt="android-lego-3" title="android-lego-3" /><p>اليوم هنالك شيء جديد لكل عشاق الأندرويد, ما رأيك بتمثال للروبوت الفضائي الأخضر بارتفاع 40 سم مصنوع بالكامل من قطع الليغو Lego! هذا الروبوت صنعه Grayson Wendell, فقام بكتابة برنامج C يقوم بنفسه بتصميم الروبوت و رسم مخطط له قبل البدء بتنفيذه ليسهل الأمر على نفسه و يوفر الوقت بدل من إضاعته على الأخطاء, أليس هذا رائعاً؟</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/09/android-lego.jpg" rel="lightbox[4279]"><img
class="aligncenter size-full wp-image-4281" title="android-lego" src="http://ardroid.com/wp-content/uploads/2010/09/android-lego.jpg" alt="" width="600" height="370" /></a></p><p>و من أجل إضفاء اللمسات على صورة التمثال, فقد قام <em>Grayson</em> بوضع آيفون 3G يعمل بنظام الأندرويد. فعلاً الأندرويد سيأكل التفاح على العشاء!</p><a
href='http://ardroid.com/2010/09/11/android-lego/android-lego-1/' title='android-lego-1'><img
width="150" height="150" src="http://ardroid.com/wp-content/uploads/2010/09/android-lego-1-150x150.jpg" class="attachment-thumbnail" alt="android-lego-1" title="android-lego-1" /></a> <a
href='http://ardroid.com/2010/09/11/android-lego/android-lego-2/' title='android-lego-2'><img
width="150" height="150" src="http://ardroid.com/wp-content/uploads/2010/09/android-lego-2-150x150.jpg" class="attachment-thumbnail" alt="android-lego-2" title="android-lego-2" /></a> <a
href='http://ardroid.com/2010/09/11/android-lego/android-lego-3/' title='android-lego-3'><img
width="150" height="150" src="http://ardroid.com/wp-content/uploads/2010/09/android-lego-3-150x150.jpg" class="attachment-thumbnail" alt="android-lego-3" title="android-lego-3" /></a> <a
href='http://ardroid.com/2010/09/11/android-lego/android-lego-4/' title='android-lego-4'><img
width="150" height="150" src="http://ardroid.com/wp-content/uploads/2010/09/android-lego-4-150x150.jpg" class="attachment-thumbnail" alt="android-lego-4" title="android-lego-4" /></a>]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/09/11/android-lego/feed/</wfw:commentRss> <slash:comments>4</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/09/android-lego-4-200x200.jpg" /> </item> <item><title>غوغل تتخذ إجراءاً جديداً لمحاربة قرصنة تطبيقات الأندرويد</title><link>http://ardroid.com/2010/07/28/google-takes-a-new-approach-to-fighting-piracy-2/</link> <comments>http://ardroid.com/2010/07/28/google-takes-a-new-approach-to-fighting-piracy-2/#comments</comments> <pubDate>Wed, 28 Jul 2010 09:23:51 +0000</pubDate> <dc:creator>أنس المعراوي</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[سوق أندرويد]]></category> <category><![CDATA[غوغل]]></category> <category><![CDATA[قرصنة]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3415</guid> <description><![CDATA[أعلنت غوغل وبشكل رسمي عن إطلاقها لخدمة ترخيص جديدة بالنسبة للتطبيقات المدفوعة في سوق أندرويد. بالتأكيد هذه الخدمة الجديدة سوف تنال إعجاب مطوري تطبيقات أندرويد بالدرجة الأولى, إذ من شأنها الحد من استخدام البرامج المُقرصنة على منصة أندرويد. حالياً, تقوم العديد من مواقع قرصنة البرمجيات بتقديم تطبيقات أندرويد المدفوعة مجاناً كملفات apk. إذ يكفي أن&#8230; <a
href="http://ardroid.com/2010/07/28/google-takes-a-new-approach-to-fighting-piracy-2/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<p>أعلنت غوغل وبشكل رسمي عن <a
href="http://android-developers.blogspot.com/2010/07/licensing-service-for-android.html" target="_blank">إطلاقها لخدمة ترخيص جديدة</a> بالنسبة للتطبيقات المدفوعة في <a
href="http://ardroid.com/tag/سوق-أندرويد" target="_blank">سوق أندرويد</a>. بالتأكيد هذه الخدمة الجديدة سوف تنال إعجاب مطوري تطبيقات أندرويد بالدرجة الأولى, إذ من شأنها الحد من استخدام البرامج المُقرصنة على منصة أندرويد.</p><p>حالياً, تقوم العديد من مواقع قرصنة البرمجيات بتقديم تطبيقات أندرويد المدفوعة مجاناً كملفات apk. إذ يكفي أن يشتري شخص واحد التطبيق من سوق أندرويد ثم يستطيع توزيعه على عدد غير محدود من المستخدمين الذين يستطيعون تنصيبه بشكل مباشر ودون أية قيود أو مشاكل. بالتأكيد هذه مشكلة كبيرة بالنسبة لمطوري تلك البرامج التي تكون منخفضة السعر أساساً (بشكل وسطي يتراوح سعر التطبيق المدفوع في سوق أندرويد بين 1 إلى 10 دولار). لهذا وفي خطوة كانت مطلوبة لتشجيع المطورين ودفعهم إلى إنتاج المزيد من التطبيقات دون خوف من القرصنة أعلنت غوغل إتاحة مكتبات جديدة للمطور بحيث تسمح له ببناء تطبيق يستطيع التخاطب مع سوق أندرويد مباشرة والتأكد إن كان قد تم شراء التطبيق بشكل قانوني من السوق أم أن النسخة المستخدمة غير قانونية. أما ما الذي يحدث بعد أن يكتشف التطبيق أنه مقرصن, فالأمر يعود للمطور إما سيقوم التطبيق بإقفال نفسه تماماً ومنع المستخدم من الدخول إليه أو يستطيع تشغيل فترة تجريبية مجانية يتم إقفالها بعد فترة إن لم يتم شراؤه بشكل قانوني.</p><p><img
class="aligncenter size-full wp-image-3416" title="androidlicense2" src="http://ardroid.com/wp-content/uploads/2010/07/androidlicense2.png" alt="" width="452" height="377" /></p><p>من  الملاحظ أن غوغل قد بدأت منذ فترة بإجراء العديد من التحسينات على سوق أندرويد الذي طالته العديد من الانتقادات مؤخراً. ويُذكر أن تغييرات جذرية قادمة إلى سوق أندرويد خلال الفترة القادمة منها واجهة ويب جديدة كلياً تُمكنك من تحميل التطبيقات من متصفحك إلى هاتفك مباشرةً بشكل لاسلكي وذلك باستخدام ميزة <a
href="http://android-developers.blogspot.com/2010/05/android-cloud-to-device-messaging.html" target="_blank">Cloud To Device</a> الرائعة التي تم تقديمها في <a
href="http://ardroid.com/tag/android-2-2" target="_blank">أندرويد 2.2</a> وكذلك إضافة <a
href="http://www.androidcentral.com/google-offering-new-payment-options-android-market" target="_blank">وسيلة دفع جديدة</a> لشراء التطبيقات وتسديد ثمنها عن طريق فاتورة هاتفك الشهرية (بالاتفاق بين غوغل وشركات التشغيل) و الآن من المتوقع أن تدفع خطوة منع القرصنة تلك إلى المزيد من المطورين والمزيد من التطبيقات عالية النوعية إلى سوق أندرويد.</p><p>[<a
href="http://android-developers.blogspot.com/2010/07/licensing-service-for-android.html" target="_blank">Android Developers Blog</a>][<a
href="http://techcrunch.com/2010/07/27/android-takes-a-new-approach-to-fighting-piracy-with-licensing-service/" target="_blank">TechCrunch</a>]</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/07/28/google-takes-a-new-approach-to-fighting-piracy-2/feed/</wfw:commentRss> <slash:comments>12</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/07/android-pirate-200x200.jpg" /> </item> <item><title>خلفية الألبومات الحية &#8212; أر العالم كم تحب الموسيقى</title><link>http://ardroid.com/2010/07/15/album-art-live-wallpaper/</link> <comments>http://ardroid.com/2010/07/15/album-art-live-wallpaper/#comments</comments> <pubDate>Thu, 15 Jul 2010 13:53:11 +0000</pubDate> <dc:creator>لؤي العقاد</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android 2.1]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Froyo]]></category> <category><![CDATA[wallpaper]]></category> <category><![CDATA[xda-developers]]></category> <category><![CDATA[ألبومات]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[خلفية]]></category> <category><![CDATA[خلفية حية]]></category> <category><![CDATA[سوق أندرويد]]></category> <category><![CDATA[مطورون]]></category> <category><![CDATA[موسيقى]]></category><guid
isPermaLink="false">http://ardroid.com/?p=3169</guid> <description><![CDATA[مرة أخرى, قام مبرمجوا الأندرويد في AndroidGamer بعمل خلفية حية جديدة و رائعة تظهر جنون عشاق الموسيقى, قد تتذكر خلفية الخرائط الحية المتقدمة و كم أحببناها, و كذلك اذا كنت تحب الموسيقى فستروق لك هذه الخلفية الجديدة المسماة Album art live wallpaper, كل ما تقوم به هو إحضار جميع صور الألبومات من مكتبتك الموسيقية و&#8230; <a
href="http://ardroid.com/2010/07/15/album-art-live-wallpaper/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="230" height="230" src="http://ardroid.com/wp-content/uploads/2010/07/DEMO-QRchart.png" class="attachment-large" alt="النسخة التجريبية" title="DEMO-QRchart" /><p>مرة أخرى, قام مبرمجوا الأندرويد في <a
href="http://www.pocketgamer.org/">AndroidGamer</a> بعمل خلفية حية جديدة و رائعة تظهر جنون عشاق الموسيقى, قد تتذكر <a
href="http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/">خلفية الخرائط الحية المتقدمة</a> و كم أحببناها, و كذلك اذا كنت تحب الموسيقى فستروق لك هذه الخلفية الجديدة المسماة Album art live wallpaper, كل ما تقوم به هو إحضار جميع صور الألبومات من مكتبتك الموسيقية و جمعها لتصبح خلفية لجهازك. و بحسب المطورين فمن ميزات الخلفية:</p><ul><li>حجم صور الألبومات قابل للتغيير</li><li>ترتيب عشوائي</li><li>تحديث تلقائي</li><li>حافظ للبطارية</li><li>تأثيرات حركة سلسة</li><li>دعم لبرنامج LauncherPro</li></ul><p>يمكنك الحصول على الخلفية من <a
href="http://ardroid.com/tag/%d8%b3%d9%88%d9%82-%d8%a3%d9%86%d8%af%d8%b1%d9%88%d9%8a%d8%af/">متجر الأندرويد</a> مقابل 99 سنتاً أو تحميل إصدار التجربة <em>demo</em> المجاني! <em>(الخلفيات الحية متوافقة فقط مع <a
href="http://ardroid.com/tag/android-2-1/">أندرويد 2.1</a>+)</em></p><p>و كالكثير من تلك التطبيقات الرائعة, الأشخاص وراء هذه الخلفية هم <a
href="http://ardroid.com/tag/xda-developers/">xda-developers</a> و يمكنك التحقق من مقالتهم الأصلية <a
href="http://forum.xda-developers.com/showthread.php?p=7158554">من هنا</a>. هاهي بعض الصور و الروابط.</p><div
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/07/device-small.png" rel="lightbox[3169]"><img
class="size-medium wp-image-3171" src="http://ardroid.com/wp-content/uploads/2010/07/device-small.png" alt="" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/07/device2-small.png" rel="lightbox[3169]"><img
class="size-medium wp-image-3174" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/07/device2-small.png" alt="" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/07/device3-small.png" rel="lightbox[3169]"><img
class="size-medium wp-image-3175" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/07/device3-small.png" alt="" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/07/device4-small.png" rel="lightbox[3169]"><img
class="size-medium wp-image-3176" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/07/device4-small.png" alt="" /></a></div><div
id="attachment_3177" class="wp-caption aligncenter" style="width: 160px"><a
href="http://ardroid.com/wp-content/uploads/2010/07/Full-QRchart.png" rel="lightbox[3169]"><img
class="size-thumbnail wp-image-3177" src="http://ardroid.com/wp-content/uploads/2010/07/Full-QRchart-150x150.png" alt="" width="150" height="150" /></a><p
class="wp-caption-text">النسخة الكاملة</p></div><div
id="attachment_3178" class="wp-caption aligncenter" style="width: 160px"><a
href="http://ardroid.com/wp-content/uploads/2010/07/DEMO-QRchart.png" rel="lightbox[3169]"><img
class="size-thumbnail wp-image-3178" src="http://ardroid.com/wp-content/uploads/2010/07/DEMO-QRchart-150x150.png" alt="" width="150" height="150" /></a><p
class="wp-caption-text">النسخة التجريبية</p></div> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/07/15/album-art-live-wallpaper/feed/</wfw:commentRss> <slash:comments>11</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/07/device-small-200x200.png" /> </item> <item><title>Tether تطلق برنامجها التجريبي لأندرويد</title><link>http://ardroid.com/2010/06/15/tether-public-beta/</link> <comments>http://ardroid.com/2010/06/15/tether-public-beta/#comments</comments> <pubDate>Tue, 15 Jun 2010 15:32:22 +0000</pubDate> <dc:creator>لؤي العقاد</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[3G]]></category> <category><![CDATA[BlackBerry]]></category> <category><![CDATA[Tether]]></category> <category><![CDATA[Tethering]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[اتصال]]></category> <category><![CDATA[انترنت]]></category> <category><![CDATA[برامج مدفوعة]]></category> <category><![CDATA[بلاك بيري]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[مشاركة]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=2579</guid> <description><![CDATA[Tether, هي شركة معروفة عند الكثيرين، و إن لم تكن تعرفها فهي شركة مختصة بتقنية مشاركة الانترنت بين الهاتف و الحاسوب tethering. من خلال برنامج Tether يمكنك مشاركة اتصال الإنترنت في الهاتف مع حاسوبك، ما عليك إلا وصل جهازك و تشغيل البرنامج، والآن أنت متصل على شبكة المحمول. البرنامج مخصص لأجهزة البلاك بيري Black Berry،&#8230; <a
href="http://ardroid.com/2010/06/15/tether-public-beta/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<p><a
title="Tether" href="http://www.tether.com/">Tether</a>, هي شركة معروفة عند الكثيرين، و إن لم تكن تعرفها فهي شركة مختصة بتقنية مشاركة الانترنت بين الهاتف و الحاسوب <em>tethering</em>.<br
/> من خلال برنامج Tether يمكنك مشاركة اتصال الإنترنت في الهاتف مع حاسوبك، ما عليك إلا وصل جهازك و تشغيل البرنامج، والآن أنت متصل على شبكة المحمول.</p><p><img
class="alignleft" style="float: left; margin: 7px;" src="http://www.androidcentral.com/sites/androidcentral.com/files/articleimage/9685/2010/06/Screen%20shot%202010-03-09%20at%209.08.04%20PM.png" alt="" width="216" height="77" />البرنامج مخصص لأجهزة البلاك بيري <em>Black Berry</em>، و بما أن الكثير من <a
title=" أندرويد في طريقه للسيطرة على سوق الهواتف الذكية" href="http://ardroid.com/2010/04/06/android-will-soon-take-over-the-smartphone-market/">مستخدمي البلاك بيري قاموا بالتغيير إلى الأندرويد</a>، فقد قامت الشركة البارحة بطرح نسخة تجريبية منه و جعلتها  مفتوحة للجميع، لكن ليست مجانية <img
src='http://ardroid.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> يمكنك فقط تجربتها لمدة 30 يوم أو تحويل نسختك التي قمت بشرائها من البلاك بيري للأندرويد. و بالتأكيد يمكنك شراء رخصة جديدة.</p><p>يمكنك الحصول على نسختك التجريبية عن طريق زيارة <a
href="http://tether.com/android-beta">موقع Tether</a> و ملء الاستمارة هناك.</p><p>لا تنسوا إطلاعنا عن رأيكم في البرنامج <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> نحن بانتظاركم.</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/06/15/tether-public-beta/feed/</wfw:commentRss> <slash:comments>6</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/06/android_network-e1276614671229.jpg" /> </item> <item><title>خلفية الخرائط الحية المتقدمة &#8211; نحن نحب أندرويد</title><link>http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/</link> <comments>http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/#comments</comments> <pubDate>Mon, 14 Jun 2010 14:13:41 +0000</pubDate> <dc:creator>لؤي العقاد</dc:creator> <category><![CDATA[برامج]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Google Maps]]></category> <category><![CDATA[GPS]]></category> <category><![CDATA[map]]></category> <category><![CDATA[wallpaper]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[خرائط غوغل]]></category> <category><![CDATA[خلفية]]></category> <category><![CDATA[سوق أندرويد]]></category> <category><![CDATA[غوغل]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=2505</guid> <description><![CDATA[هل تذكر ميزة خلفية الخرائط الحية من خرائط غوغل 4.1؟ لا بد أنك احببتها مثل الكثير من الناس. أما الآن فستحبها أكثر بعد أن قام المطورون في AndroidGamer بما يجيدون فعله و لم يعطونا بعض الخيارات و امكانية استخدام كل أنواع الخرائط فقط, بل انطلقوا لأبعد من هذا ببرنامجهم الجديد و المتميزAdvanced Map Live Wallpaper.&#8230; <a
href="http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="360" height="600" src="http://ardroid.com/wp-content/uploads/2010/06/Maps-home.png" class="attachment-large" alt="Maps-home" title="Maps-home" /><p>هل تذكر ميزة <a
title="تحديث خرائط غوغل إلى 4.1 يقدم مزايا جديدة" href="http://ardroid.com/2010/03/19/google-maps-update-to-4-1/">خلفية الخرائط الحية من خرائط غوغل 4.1</a>؟ لا بد أنك احببتها مثل الكثير من الناس. أما الآن فستحبها أكثر بعد أن قام المطورون في <a
href="http://www.pocketgamer.org/os-map">AndroidGamer</a> بما يجيدون فعله و لم يعطونا بعض الخيارات و امكانية استخدام كل أنواع الخرائط فقط, بل انطلقوا لأبعد من هذا ببرنامجهم الجديد و المتميزAdvanced Map Live Wallpaper.</p><div
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/06/Maps-home.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2529" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/Maps-home-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/Lock-Maps.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2516" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/Lock-Maps-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/Maps-home2.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2526" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/Maps-home2-180x300.png" alt="" width="180" height="300" /></a></div><p><span
id="more-2505"></span></p><p>الميزات الجديدة في هذا التطبيق و الغير موجودة في نسخة غوغل رائعة و ستعجبك:</p><ul><li>خيارات متعددة للخرائط, مثل غوغل, Bing, Ordnance survey, USA VFR, IR charts و openstreetmap.</li><li>لا يستهلك البطارية بشكل كبير, حيث يغلق نفسه عند اخفاء الخليفة.</li><li>يوفر عليك من تكلفة الاتصال بميزة التخزين المؤقت Caching, حيث لا تطر لتحميل ملفات الخرائط سوى مرة واحدة.</li><li>يمكنك تغيير درجة التكبير على جميع الخرائط.</li><li>يحدد لك مكانك, و يضع دائرة حوله لتتمكن من معرفة أين أنت, و يمكن ايقاف هذه الميزة.</li></ul><p><em>(ملاحظة: هذه الخلفية لا تعمل إلا على <a
title="Android 2.1" href="http://ardroid.com/tag/android-2-1/">Android 2.1</a> أو النسخ الأحدث, و هي لا تزال في المرحلة التجريبية)</em></p><div
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW1.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2508" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW1-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW2.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2510" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW2-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW3.png" rel="lightbox[2505]"></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW3.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2511" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW3-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/ALMW4.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2507" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/ALMW4-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW5.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2513" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW5-180x300.png" alt="" width="180" height="300" /></a><a
href="http://ardroid.com/wp-content/uploads/2010/06/AMLW6.png" rel="lightbox[2505]"><img
class="alignnone size-medium wp-image-2525" style="margin: 3px" src="http://ardroid.com/wp-content/uploads/2010/06/AMLW6-180x300.png" alt="" width="180" height="300" /></a></div><p>الآن و إذا أردت تحميل البرنامج (على الأغلب أنت تريد ذلك) فما عليك إلا مسح الكود الآتي:</p><p><a
href="http://ardroid.com/wp-content/uploads/2010/06/LiveMapsqrcode.png" rel="lightbox[2505]"><img
class="aligncenter size-full wp-image-2512" src="http://ardroid.com/wp-content/uploads/2010/06/LiveMapsqrcode.png" alt="" width="210" height="210" /></a></p><p><em>[مصادر: <a
href="http://www.talkandroid.com/3157-advanced-map-live-wallpaper-now-in-android-market/">talkandroid.com</a>, <a
href="http://www.androidcentral.com/advanced-map-live-wallpaper-why-we-love-open-source">androidcentral.com</a>]</em></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/06/14/advanced-map-live-wallpaper/feed/</wfw:commentRss> <slash:comments>17</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/06/AMLW-thumb-e1276522902695.jpg" /> </item> <item><title>رجل أندرويد الجديد تيم براي: &#8220;الآيفون حديقة مسيجة تفتقر للحرية&#8221;</title><link>http://ardroid.com/2010/03/16/tim-bray-speaks-against-apple/</link> <comments>http://ardroid.com/2010/03/16/tim-bray-speaks-against-apple/#comments</comments> <pubDate>Tue, 16 Mar 2010 18:12:37 +0000</pubDate> <dc:creator>أنس قطيش</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Apple]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[Tim Bray]]></category> <category><![CDATA[آبل]]></category> <category><![CDATA[آيفون]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[تيم براي]]></category> <category><![CDATA[غوغل]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1603</guid> <description><![CDATA[استقطبت غوغل الخبير السابق في Sun Microsystems تيم براي (Tim Bray) ليصبح عضواً في فريق تطوير أندرويد، وقد أعلن تيم عن انضمامه في تدوينة لاهبة انتقد فيها سياسات آبل تجاه الآيفون وبشدة، هذا هو نصها: رؤية الآيفون لمستقبل الإنترنت النقال تحذف الأمور المثيرة للجدل والجنس والحرية، ولكنها تتضمن قيودا صارمة على من يمكن له أن&#8230; <a
href="http://ardroid.com/2010/03/16/tim-bray-speaks-against-apple/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="401" height="350" src="http://ardroid.com/wp-content/uploads/2010/03/iphone-vs-android.jpg" class="attachment-large" alt="iphone-vs-android" title="iphone-vs-android" /><p>استقطبت غوغل الخبير السابق في Sun Microsystems تيم براي (Tim Bray) ليصبح عضواً في فريق تطوير أندرويد، وقد أعلن تيم عن انضمامه في تدوينة لاهبة انتقد فيها سياسات <a
href="http://ardroid.com/tag/apple/" target="_blank">آبل</a> تجاه <a
href="http://ardroid.com/tag/iphone/" target="_blank">الآيفون</a> وبشدة، هذا هو نصها:</p><blockquote><p>رؤية الآيفون لمستقبل الإنترنت النقال تحذف الأمور المثيرة للجدل والجنس والحرية، ولكنها تتضمن قيودا صارمة على من يمكن له أن يعرف ماذا ومن يمكن له أن يقول ماذا. إنها حديقة مسورة مثل عالم ديزني محاطة بمحامين حادي الأنياب. الناس الذين ينشئون التطبيقات يعملون على هوى المالك ويخافون غضبه.</p><p>أنا أكرهها.</p><p>أنا أكره ذلك على الرغم من أن الآيفون يتمتع ببرمجيات وعتاد ممتازين، لأن الحرية ليست مجرد كلمة أخرى لا تعني شيئاً، كما أنها ليست عنصراً اختيارياً.</p><p>ليست الميزة الكبرى للإنترنت هي التقنية، بل هي أنها أول منصة ليس لها بائع (أول من أشار إلى هذا الأمر هو ديف واينر). وكل الأشياء التي لها أهمية تنبع من ذلك، وهي تهم الآن عدداً ضخماً من الناس. إنها النوع الوحيد من المنصات الذي أريد المساعدة في بنائه.</p><p>آبل على ما يبدو تعتقد أنه يمكن لك أن تحصد فوائد الإنترنت، بينما في نفس الوقت تسيطر على أي البرامج يمكن تشغيلها وأي أجزاء الحزمة يمكن الوصول إليها وما يمكن للمطورين أن يقولوه لبعضهم بعضاً.</p><p>أعتقد أنهم على خطأ وأرى هذا العمل بمثابة فرصة للمساعدة في إثبات ذلك.</p></blockquote><p>تأتي تصريحات براي لتضيف زيتاً على نار الصراع الدائر بين آبل وغوغل والذي تمثل مؤخراً في مقاضاة آبل لشركة <a
href="http://ardroid.com/tag/htc/" target="_blank">HTC</a> بتهمة التعدي على براءات اختراع متعددة تحوزها آبل وطالبت بمنع بيع منتجات HTC في الولايات المتحدة.</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/03/iphone-vs-android.jpg" rel="lightbox[1603]"><img
class="size-full wp-image-1609 aligncenter" src="http://ardroid.com/wp-content/uploads/2010/03/iphone-vs-android.jpg" alt="" width="401" height="350" /></a></p><p
style="text-align: right">[المصدر <a
href="http://www.eurodroid.com/2010/03/new-google-android-man-iphone-world-is-a-sterile-disney-fied-walled-garden/" target="_blank"><em>Euro Droid</em></a>]</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/03/16/tim-bray-speaks-against-apple/feed/</wfw:commentRss> <slash:comments>13</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/03/Tim_Bray.jpg" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس السادس</title><link>http://ardroid.com/2010/02/15/android-programming-series-l6/</link> <comments>http://ardroid.com/2010/02/15/android-programming-series-l6/#comments</comments> <pubDate>Mon, 15 Feb 2010 21:29:45 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[layout]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برامج]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1419</guid> <description><![CDATA[مرحبا من جديد.. وأعتذر على التأخر في طرح هذه الحلقة، ونعدكم بطرح مكثف نسبيا في الأيام القادمة لنبدأ! نلاحظ أننا في الدروس السابقة كنا نضع الأزرار والحقول النصية وغيرها من العناصر التي تستقبل مدخلات من المستخدم أو تعرض نتائجا له (وتسمى Widgets) بداخل وسم في ملف الXML واسمه LinearLayout. هذا الوسم يمثل وعاء Container توضع&#8230; <a
href="http://ardroid.com/2010/02/15/android-programming-series-l6/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="485" height="88" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.57.30-PM.png" class="attachment-large" alt="Screen shot 2010-02-15 at 11.57.30 PM" title="Screen shot 2010-02-15 at 11.57.30 PM" /><p
dir="rtl">مرحبا من جديد.. وأعتذر على التأخر في طرح هذه الحلقة، ونعدكم بطرح مكثف نسبيا في الأيام القادمة <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
dir="rtl">لنبدأ!<br
/> نلاحظ أننا في الدروس السابقة كنا نضع الأزرار والحقول النصية وغيرها من العناصر التي تستقبل مدخلات من المستخدم أو تعرض نتائجا له (وتسمى Widgets) بداخل وسم في ملف الXML واسمه LinearLayout. هذا الوسم يمثل وعاء Container توضع في داخله الأزرار وال Widgets الأخرى. ولكنه ليس الوسم الوحيد المستخدم.</p><p
dir="rtl">سنتعرف في هذا الدرس على وظيفة و كيفية إنشاء ما يلي:</p><p
dir="rtl">١- وعاء &lt;LinearLayout&gt;</p><p
dir="rtl">٢- وعاء &lt;TableLayout&gt;</p><p
dir="rtl">٣- وعاء &lt;ScrollView&gt;</p><p
dir="rtl"><p
dir="rtl"><strong>١- وعاء &lt;LinearLayout&gt;</strong></p><p
dir="rtl">لدينا عادة الخصائص\العناصر التالية:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div><p
dir="rtl">بالنسبة لخاصية التوجه Orientation يتم عبرها تحديد طريقة رصف الأزرار وال Widgets في الصفحة. الوضع الرأسي Vertical يعني وضع العناصر بشكل عمودي، أما Horizontal فيعني صفها بشكل أفقي.</p><p
dir="rtl">خاصية layout_width مسؤولة عن تحديد عرض الوعاء، ونحن في هذه الحالة نريد من الوعاء ملأ الشاشة واحتلال جميع المساحات، لذلك نختار fill_parent.</p><p
dir="rtl">خاصية layout_height يتم عبرها تحديد ارتفاع الوعاء، وأيضا نريده ملأ المساحات كاملة.</p><p
dir="rtl">نقوم الآن بإنشاء زر لنرى كيفية التحكم بطريقة ظهوره في واجهة التطبيق.</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">بالنسبة للخاصية الأولى، android:text فهي المسؤولة عن تحديد النص المراد ظهوره على الزر. android:id تقوم بإعطاء رقم خاص للعنصر يميزه عن غيره. بالنسبة للخاصيتين الأخيرتين فقد تم شرحهما في الأعلى، ولكني سأتعرض للقيم التي من الممكن إعطاءها لهما. هناك ٣ احتمالات. الأول fill_parent الذي يقوم بملىء المساحة الخالية بالزر بحسب الخاصية التي أعطي لها (layout_width أو layout_height). الثاني هو wrap_content والذي يقوم بضغط حجم الزر بحسب محتواه النصي. الاحتمال الثالث هو أن يتم تحديد الارتفاع والعرض بمقياس البيكسل.</p><p
dir="rtl">مثال للحالة الأولى والثانية (سيملأ الزر المساحات المجاورة له بالعرض، ولكن ارتفاعه سيكون مضغوطا):</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.02.10-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1422  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.02.10-PM-300x110.png" alt="" width="300" height="110" /></a></p><p
dir="rtl"><p
dir="rtl">(قم بتجربة الاحتمالات الأخرى، ويمكنك الاستعانة بتبويب Layout لاستعراض نتيجة التصميم بدلا من تشغيل التطبيق في كل مرة.. كما يمكنك استخدام هذه الواجهة لتصميم صفحة النشاط في التطبيق دون كتابة كود ال XML في كل مرة)</p><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.07.17-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1423  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.07.17-PM-300x231.png" alt="" width="300" height="231" /></a></p><p
dir="rtl"><p
dir="rtl">مثال للحالة الثالثة:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;300px&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;100px&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.12.57-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1424  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.12.57-PM-300x126.png" alt="" width="300" height="126" /></a></p><p
dir="rtl"><p
dir="rtl">سنقوم بإضافة زر ثانٍ، ولكننا نريد وضعه الآن بجانب الزر الأول. كيف نقوم بذلك؟ لا ننس الخاصية الأولى الخاصة بوعاء LinearLayout وهي Orientation. نقوم بتعديلها ليتم عرض ال Widgets بشكل أفقي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;horizontal&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span></pre></div></div><p
dir="rtl">والزر الثاني (قم بتسميته بنفس اسم الزر السابق):</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.57.30-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1433  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.57.30-PM-300x54.png" alt="" width="300" height="54" /></a></p><p
dir="rtl"><p
dir="rtl"><p
dir="rtl">سنقوم الآن بالتعرف على خاصية الوزن android:layout_weight والتي تقوم بإعطاء أولوية نقوم بتحديدها لأحد الزرين ليحتل أعلاهما أولوية كمية أكبر من المساحات الفارغة. فمثلا:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_weight</span>=<span style="color: #ff0000;">&quot;1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_weight</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.31.56-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1426  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.31.56-PM-300x95.png" alt="" width="300" height="95" /></a></p><p
dir="rtl"><p
dir="rtl">هناك عدد من الخصائص الأخرى والتي يتم عبرها التحكم بطريقة وضع ال Widgets فلدينا مثلا android:layout_agravity وهي مناسبة أكثر في حالة التعامل مع الWidgets عند رصفهم رأسيا ونقوم عبرها بالتحكم بخاصية المحاذاة alignment التي سيكون عليها الزر مثلا. وفي حال أردنا التحكم بالمحاذاة في طريقة الرصف الأفقية، فمن الأفضل استخدام android:layout_marginLeft وتحديد عدد النقاط Pixels التي تفصل بين الزر والآخر.</p><p
dir="rtl">مثال على android:layout_marginLeft في حالة الرصف الأفقية android:orientation=&#8221;horizontal&#8221; :</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_marginLeft</span>=<span style="color: #ff0000;">&quot;180px&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.47.07-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1427  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-14-at-5.47.07-PM-300x44.png" alt="" width="300" height="44" /></a></p><p
dir="rtl"><p
dir="rtl">ومثال على android:layout_gravity بالوضع الرأسي android:orientation=&#8221;vertical&#8221;:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button02&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;right&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.31.44-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1428  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.31.44-PM-300x81.png" alt="" width="300" height="81" /></a></p><p
dir="rtl"><p
dir="rtl">طبعا نلاحظ القائمة المنسدلة والتي تحوي عددا من القيم التي يمكنكم تجربتها ورؤية تأثيرها.</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.32.23-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1429  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-9.32.23-PM-300x138.png" alt="" width="300" height="138" /></a></p><p
dir="rtl"><p
dir="rtl">قوموا بتجربة خصائص أخرى كال android:gravity و android:paddingLeft وغيرها ولاحظوا تأثيراتها.</p><p
dir="rtl">في نهاية هذا القسم، تجدر الإشارة الى أنه يمكننا تغيير خاصية توجه\وضع الوعاء Orientation أثناء عمل التطبيق. فمثلا يمكننا برمجة التطبيق بأن يقوم بتغيير التوجه ليصبح بالوضع الأفقي عند ضغط زر. تتم هذه العملية باستدعاء دالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">x.<span style="color: #006633;">setOrientation</span><span style="color: #009900;">&#40;</span>LinearLayout.<span style="color: #006633;">HORIZONTAL</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p
dir="rtl">حيث x هي اسم ال Widget ، زر مثلا.</p><p
dir="rtl"><strong>٢- وعاء &lt;TableLayout&gt;<span
style="font-weight: normal"> </span></strong></p><p
dir="rtl">يأخذ هذا الوعاء شكل الجدول. لذا، فإننا نستخدم وسم &gt;TableRow&lt; كلما أردنا إنشاء صف جديد. يتميز هذا الوعاء بعدد من الخصائص:</p><p
dir="rtl"><span
style="color: #339966">أ-</span> android:layout_span  : وهي خاصية تحدد المدى الذي نود أن يحتله العنصر، وتأخذ قيمة عددية. القيمة العددية تحدد بشكل غير مباشر عدد الأعمدة Columns داخل الصف.</p><p
dir="rtl"><span
style="color: #339966">ب-</span> android:layout_column : وهي خاصية تحدد رقم العمود الذي سيتوضع عنده العنصر Widget. وترقيم الأعمدة يبدأ من الصفر، بمعنى أن أول عمود رقمه صفر، وهكذا.</p><p
dir="rtl"><span
style="color: #339966">ج-</span> android:stretchColumns : وهي خاصية محصورة بالوعاء نفسه (أي لا يمكن تطبيقها على العناصر Widgets  ) وهي تعمل على شد العمود ليغطي المساحاة الفارغة، وتأخذ قيمة عددية تحدد رقم العمود.</p><p
dir="rtl"><span
style="color: #339966">د-</span> android:shrinkColumns : وهي عكس الخاصية السابقة.</p><p
dir="rtl">مثال توضيحي:</p><p
dir="rtl">للحصول على التصميم التالي:</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.11.47-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1430  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.11.47-PM-202x300.png" alt="" width="202" height="300" /></a></p><p
dir="rtl">نستعمل الكود:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:stretchColumns</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBox</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;checkBox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/CheckBox01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;0&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/CheckBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><strong>٣- وعاء &lt;ScrollView&gt;</strong></p><p
dir="rtl">نستعمل هذا الوعاء في حالة كان المحتوى الذي نود عرضه في الصفحة كبيرا بحيث أنه لا يمكن وضعه في صفحة واحدة. طريقة عمله سهلة وهي تضمين التصميم الذي نرغبه بداخله. فمثلا، يمكننا وضع الكود الذي كتبناه في الأعلى بداخله (بعد إضافة عدد من العناصر Widgets حتى يتطلب عرض المحتوى أكثر من صفحة).</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ScrollView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:stretchColumns</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Ardroid&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/Button01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Button<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBox</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;checkBox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/CheckBox01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;0&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/CheckBox<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;RadioButton</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Radio Button&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/RadioButton01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/RadioButton<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Hello!&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_gravity</span>=<span style="color: #ff0000;">&quot;center&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;SeekBar</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/SeekBar01&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_span</span>=<span style="color: #ff0000;">&quot;2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_column</span>=<span style="color: #ff0000;">&quot;1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/SeekBar<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableRow<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/TableLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ScrollView<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl"><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.25.55-PM.png" rel="lightbox[1419]"><img
class="size-medium wp-image-1431  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/02/Screen-shot-2010-02-15-at-11.25.55-PM-202x300.png" alt="" width="202" height="300" /></a></p><p
dir="rtl"><p
dir="rtl">بقي لدينا وعاء آخر وهو &lt;RelativeLayout&gt; وسأتكلم عنه في درس لاحق إن شاء الله..</p><p
dir="rtl">أتمنى أن يكون هذا الدرس قد أعجبكم.. <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
dir="rtl">بالتوفيق..</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/02/15/android-programming-series-l6/feed/</wfw:commentRss> <slash:comments>41</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/02/android-bauhaus-background.jpg" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس الخامس</title><link>http://ardroid.com/2010/01/27/android-programming-series-l5/</link> <comments>http://ardroid.com/2010/01/27/android-programming-series-l5/#comments</comments> <pubDate>Wed, 27 Jan 2010 20:21:55 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Android SDK]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برامج]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1107</guid> <description><![CDATA[مرحبا.. مع وصولنا الى الحلقة الخامسة من سلسلة تعلم برمجة الأندرويد، وبعد تغطيتنا لأهم المفاهيم، ستكون الحلقات القادمة عبارة عن أمثلة متنوعة أنقلها لكم من مصادر مختلفة كالكتب والمواقع الالكترونية. وستتنوع هذه الأمثلة كون البرمجة والحزمة البرمجية SDK ماهي الا أدوات في صندوق العدة الذي يحمله المبرمج، والتطبيقات تتشكل بحسب إبداع ومهارة المبرمج. سنتعلم في&#8230; <a
href="http://ardroid.com/2010/01/27/android-programming-series-l5/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="363" height="292" src="http://ardroid.com/wp-content/uploads/2010/01/android_flickr_samuraispy-copy.jpg" class="attachment-large" alt="android_flickr_samuraispy copy" title="android_flickr_samuraispy copy" /><p
dir="rtl">مرحبا..</p><p
dir="rtl">مع وصولنا الى الحلقة الخامسة من سلسلة تعلم برمجة الأندرويد، وبعد تغطيتنا لأهم المفاهيم، ستكون الحلقات القادمة عبارة عن أمثلة متنوعة أنقلها لكم من مصادر مختلفة كالكتب والمواقع الالكترونية. وستتنوع هذه الأمثلة كون البرمجة والحزمة البرمجية SDK ماهي الا أدوات في صندوق العدة الذي يحمله المبرمج، والتطبيقات تتشكل بحسب إبداع ومهارة المبرمج.</p><p
dir="rtl">سنتعلم في هذا الدرس المواضيع التالية:</p><p
dir="rtl">١- استخدام الواجهة الخاصة بالإعدادات كتلك المستخدمة في نظام الأندرويد</p><p
dir="rtl">٢- تعديل الثيم الخاص بعرض الرسالة</p><p
dir="rtl">٣- تشغيل مقاطع صوتية داخل التطبيق</p><p
dir="rtl"><p
dir="rtl"><strong>١- استخدام الواجهة الخاصة بالإعدادات كالمستخدمة في الأندرويد<span
style="font-weight: normal"> </span></strong></p><p
dir="rtl">سنستخدم التطبيق الذي قمنا بالعمل عليه في الحلقة السابقة لنضيف نشاطا ثالثا. ننشيء ملفا باسم: Act3.java ونضع فيه التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.preference.PreferenceActivity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Act3 <span style="color: #000000; font-weight: bold;">extends</span> PreferenceActivity
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
addPreferencesFromResource<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">act3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>ننشيء ملفا تحت res/layout تحت مسمى act3.xml ونضع فيه التالي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;PreferenceScreen</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBoxPreference</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:key</span>=<span style="color: #ff0000;">&quot;setting1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:title</span>=<span style="color: #ff0000;">&quot;Setting 1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:summary</span>=<span style="color: #ff0000;">&quot;Modify setting 1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:defaultValue</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBoxPreference</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:key</span>=<span style="color: #ff0000;">&quot;setting2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:title</span>=<span style="color: #ff0000;">&quot;Setting 2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:summary</span>=<span style="color: #ff0000;">&quot;Modify setting 2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:defaultValue</span>=<span style="color: #ff0000;">&quot;true&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBoxPreference</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:key</span>=<span style="color: #ff0000;">&quot;setting3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:title</span>=<span style="color: #ff0000;">&quot;Setting 3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:summary</span>=<span style="color: #ff0000;">&quot;Modify setting 3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:defaultValue</span>=<span style="color: #ff0000;">&quot;false&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/PreferenceScreen<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">نضيف التالي في ملف القائمة ArdroidMultiActs.java :</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>ومن ثم:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span>
&nbsp;
showAct3<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">ومن ثم:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct3<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete3 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act3.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete3<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>وختاما نضيف التالي في ArdroidMultiActs Manifest.java :</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 3&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">البرنامج يصبح كالتالي عند اختيار الخيار الثالث:</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-12.38.58-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1113  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-12.38.58-PM-203x300.png" alt="" width="203" height="300" /></a></p><p
dir="rtl"><strong>٢- تعديل الثيم الخاص بعرض الرسالة</strong></p><p
dir="rtl">يمكننا استخدام ثيمات معرفة مسبقا في الحزمة التطويرية لعرض المحتوى الذي نرغبه. وسنجد أن هذه الثيمات تشابه تلك المستخدمة في الأندرويد نفسه. لتحديد نوع الثيم الخاص بنشاط معين، ننشيء ملفا باسم: Act4.java ونضع فيه التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Act4 <span style="color: #000000; font-weight: bold;">extends</span> Activity
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">act4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">ننشيء ملفا تحت res/layout تحت مسمى act4.xml ونضع فيه التالي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/text&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;This is an android powered application&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">نضيف التالي في ملف القائمة ArdroidMultiActs.java :</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">3</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act4&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p
dir="rtl">ومن ثم:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">2</span><span style="color: #339933;">:</span>
&nbsp;
showAct3<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">3</span><span style="color: #339933;">:</span>
&nbsp;
showAct4<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">ومن ثم:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct4<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete4 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act4.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete4<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">وختاما نضيف التالي في ArdroidMultiActs Manifest.java :</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act4&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 4&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:theme</span>=<span style="color: #ff0000;">&quot;@android:style/Theme.Dialog&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">بالضغط على الخيار الرابع، يظهر لدينا ما يلي:</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-4.56.37-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1108  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-4.56.37-PM-204x300.png" alt="" width="204" height="300" /></a></p><p
dir="rtl"><strong>٣- تشغيل مقاطع صوتية داخل التطبيق</strong></p><p
dir="rtl">من المفيد أحيانا إضافة مقاطع صوتية للتطبيق وتمكينه من تشغيلها. قد تكون المقاطع مقترنة بأزرار لوحة المفاتيح إن وجدت، أو بأزرار نقوم بإنشائها داخل التطبيق. سنقوم بعمل تطبيق يحتوي على زر واحد من شأنه تشغيل مقطع صوتي في حال الضغط عليه. كما سيقوم بعمل إيقاف مؤقت للمقطع في حال ضغطنا عليه من جديد.</p><p
dir="rtl">أود التنبيه لنقطة مهمة. فيما سبق، قمت بذكر أن المقاطع الصوتية ومقاطع الفيديو يتم إضافتها الى ملف ال  assets. ولكن التغييرات العديدة في الحزمة البرمجية التطويرية SDK قامت باسترجاع الطريقة السابقة من حيث المكان الذي توضع فيه مقاطع الصوت. والطريقة السابقة تقتضي بوضع المقطع في مجلد اسمه raw نقوم بإنشائه تحت المجلد res. سأقوم بوضع أغنية سميتها song.mp3 في مشروع جديد أسميته AndroidAudio على النحو التالي:</p><p
style="text-align: center" dir="rtl"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.22.01-PM.png" rel="lightbox[1107]"><img
class="size-full wp-image-1109  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.22.01-PM.png" alt="" width="158" height="136" /></a></p><p
dir="rtl">في ملف ال main.xml، قمت بإضافة الكود التالي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:background</span>=<span style="color: #ff0000;">&quot;#4500ffff&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:padding</span>=<span style="color: #ff0000;">&quot;40dip&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;TextView</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Android Audio&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/ac1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;play/pause&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p
dir="rtl">الآن نعود الى ملف المصدر البرمجي AndroidAudio.java وأقوم باستيراد المكتبات والمجموعات التالية:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.media.MediaPlayer</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Toast</span><span style="color: #339933;">;</span></pre></td></tr></table></div><p
dir="rtl">المجموعة الثانية خاصة بالكائن الذي سنقوم بإضافة الأغنية له. بالنسبة لآخر مجموعة، سنرى تأثيرها فيما بعد.</p><p
dir="rtl">نقوم بإضافة الكود التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AndroidAudio <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> MediaPlayer mp<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle ww<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>ww<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> play <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">ac1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> MediaPlayer mp <span style="color: #339933;">=</span> MediaPlayer.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">song</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
play.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>playstop <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
MediaHandler<span style="color: #009900;">&#40;</span>mp,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//mp.start();</span>
&nbsp;
playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
show1<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;played&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
MediaHandler<span style="color: #009900;">&#40;</span>mp,<span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//mp.pause();</span>
&nbsp;
playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
show1<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;paused&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">المتغير playstop يتم استخدامه أثناء الضغط على الزر حتى نتمكن من معرفة حالة المقطع (يعمل أو متوقف). الدالة MediaHandler هي دالة قمت بتعريفها والغرض منها تمرير الكائن الذي يحمل المقطع الصوتي إضافة الى رقم تقوم من خلاله الدالة بإيقاف المقطع أو إعادة تشغيله (ويمكن الاستعاضة عنها باستخدام السطر الذي يليها مباشرة). الدالة show1 هي دالة نقوم بتمرير عبارة نصية عبرها تقوم بإظهارها بشكل مؤقت على الشاشة.</p><p
dir="rtl">الدالة MediaHandler :</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> MediaHandler<span style="color: #009900;">&#40;</span>MediaPlayer mp, <span style="color: #000066; font-weight: bold;">int</span> e<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>e <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
mp.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
mp.<span style="color: #006633;">pause</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">الدالة show1 :</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> show1<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> ss<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Toast.<span style="color: #006633;">makeText</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, ss,Toast.<span style="color: #006633;">LENGTH_SHORT</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
dir="rtl">الشكل النهائي لملف AndroidAudio.java</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.AndroidAudio</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.media.MediaPlayer</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Toast</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> AndroidAudio <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> MediaPlayer mp<span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle ww<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>ww<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> play <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">ac1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> MediaPlayer mp <span style="color: #339933;">=</span> MediaPlayer.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, R.<span style="color: #006633;">raw</span>.<span style="color: #006633;">song</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
play.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>playstop <span style="color: #339933;">==</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
MediaHandler<span style="color: #009900;">&#40;</span>mp,<span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//mp.start();</span>
&nbsp;
playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
show1<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;played&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
MediaHandler<span style="color: #009900;">&#40;</span>mp,<span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//mp.pause();</span>
&nbsp;
playstop <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
show1<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;paused&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> MediaHandler<span style="color: #009900;">&#40;</span>MediaPlayer mp, <span style="color: #000066; font-weight: bold;">int</span> e<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>e <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
mp.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
mp.<span style="color: #006633;">pause</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> show1<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> ss<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Toast.<span style="color: #006633;">makeText</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, ss,Toast.<span style="color: #006633;">LENGTH_SHORT</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.35.50-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1110  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.35.50-PM-203x300.png" alt="" width="203" height="300" /></a></p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.37.26-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1111  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.37.26-PM-259x300.png" alt="" width="259" height="300" /></a></p><p
style="text-align: center"><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.37.43-PM.png" rel="lightbox[1107]"><img
class="size-medium wp-image-1112  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-27-at-8.37.43-PM-249x300.png" alt="" width="249" height="300" /></a></p><p
dir="rtl">أتمنى أن تكون هذه الحلقة قد نالت إعجابكم. تحياتي لكم <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/01/27/android-programming-series-l5/feed/</wfw:commentRss> <slash:comments>9</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/01/android_flickr_samuraispy-copy.jpg" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس الرابع</title><link>http://ardroid.com/2010/01/18/android-programming-series-l4/</link> <comments>http://ardroid.com/2010/01/18/android-programming-series-l4/#comments</comments> <pubDate>Mon, 18 Jan 2010 21:37:46 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[tutorial]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[دروس]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=1002</guid> <description><![CDATA[مرحبا بكم من جديد.. تساءل عدد من القراء إن كان يلزمهم الالمام بلغة الجافا حتى يتمكنوا من اتمام هذه السلسلة واستيعابها. الجواب نعم! وهناك عدد من الكتب التي تشرح لغة الجافا البرمجية بشكل مبسط وسهل الفهم ولعل أهمها برأيي هو كتاب Thinking in Java. وطبعا يوجد عدد من المواقع\المنتديات العربية التي تقدم دروسا في الجافا&#8230; <a
href="http://ardroid.com/2010/01/18/android-programming-series-l4/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="460" height="285" src="http://ardroid.com/wp-content/uploads/2010/01/Android-SS1.jpg" class="attachment-large" alt="Android SS1" title="Android SS1" /><p>مرحبا بكم من جديد..</p><p>تساءل عدد من القراء إن كان يلزمهم الالمام بلغة الجافا حتى يتمكنوا من اتمام هذه السلسلة واستيعابها. الجواب نعم! وهناك عدد من الكتب التي تشرح لغة الجافا البرمجية بشكل مبسط وسهل الفهم ولعل أهمها برأيي هو كتاب <a
href="http://www.amazon.com/Thinking-Java-4th-Bruce-Eckel/dp/0131872486">Thinking in Java</a>. وطبعا يوجد عدد من المواقع\المنتديات العربية التي تقدم دروسا في الجافا لمختلف المستويات.</p><p>وأرسل لي أحد القراء الأفاضل رسالة يتساءل فيها عن أفضل الكتب التي تشرح برمجة الأندرويد. في الواقع هناك كتب عديدة يمكن مطالعة عناوينها وتقييماتها عبر أمازون، على أنني لا أفضل الكتاب الذي ذكرت في بداية السلسلة بأنني سأستخدمه أثناء الشرح والسبب كمية الأخطاء الكبيرة الموجودة في هذا الكتاب، إضافة الى أنه يستخدم الحزم البرمجية القديمة التي انقرض عدد من أهم دوالها في الحزم الجديدة، وهذا ما أدى الى حصول الكتاب على تقييم منخفض في Amazon من قبل القراء، حتى أن عددا منهم انتقدوا عدم تقيد الكاتب ب &#8220;عرف&#8221; الجافا <a
href="http://java.sun.com/docs/codeconv/">Java Convention</a> في تسمية الدوال وال Packages، وأعترف بأنني لم أقم بالا لهذا الأمر في هذه السلسلة ولكنني سأعمل على تدارك الموضوع في الدروس القادمة، فمعذرة من قرائنا الأعزاء.</p><p>ابتداء من هذا الدرس ستتنوع المصادر التي سأستخدمها في الشرح العملي، حيث أننا استوفينا شرح الجانب النظري المبسط من الأندرويد بمساعدة الكتاب آنف الذكر وهي بالمناسبة النقطة الوحيدة المضيئة في هذا الكتاب، وكان لزاما عليّ أن ألجأ لأحد الكتب في شرح المفاهيم النظرية لأنني لست بارعا في شرحها مرتبة ومتسلسلة <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p><p>حسنا، بعد المقدمة الطويلة، سنتعرف اليوم على:</p><p><strong>١- كيفية التأكد من صحة المدخلات باستخدام Regular Expressions وكيفية إظهار رسالة خطأ.</strong></p><p><strong>٢- استخدام زر القائمة Menu وكيفية اضافة خيارات له.</strong></p><p><strong>٣- كيفية عمل تطبيق متعدد الأنشطة.</strong></p><p>لنبدأ..</p><p><strong>١- كيفية التأكد من صحة المدخلات باستخدام Regular Expressions وكيفية إظهار رسالة خطأ.</strong></p><p>سنقوم باستدعاء المكتبة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.regex.*</span><span style="color: #339933;">;</span></pre></div></div><p>وسنقوم في داخل المجموعة المجهولة الخاصة بزر الاتصال بعمل باستدعاء دالة validatePhoneNumber (سنقوم بكتابة محتواها بعد قليل) لتتحقق من البيانات التي قام بإدخالها المستخدم. والآن، عند استدعاء الدالة الخاصة بالزر (عند ضغط الزر) سنستخدم جملة if على الشكل التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;">callButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>validatePhoneNumber<span style="color: #009900;">&#40;</span>phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent callIntent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">ACTION_CALL</span>,Uri.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tel:&quot;</span> <span style="color: #339933;">+</span> phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callIntent.<span style="color: #006633;">setFlags</span><span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">FLAG_ACTIVITY_NEW_TASK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>callIntent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>بالنسبة لما ورد في جملة else، سنقوم بتجاهله حاليا.</p><p>علينا الآن كتابة محتوى الدالة validatePhoneNumber على الشكل التالي: (وهي ستكون كدالة تابعة للمجموعة المجهولة Anonymous Class):</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> validatePhoneNumber<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> number<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
Pattern phoneNumber1 <span style="color: #339933;">=</span> Pattern.<span style="color: #006633;">compile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;(<span style="color: #000099; font-weight: bold;">\\</span>d{2}-)?<span style="color: #000099; font-weight: bold;">\\</span>d{7}&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Matcher matcher <span style="color: #339933;">=</span> phoneNumber1.<span style="color: #006633;">matcher</span><span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> matcher.<span style="color: #006633;">matches</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>عند استدعاء هذه الدالة، نستدعي بداية الدالة Pattern.compile التي تقوم بإنشاء رقم بناء على الصيغة التي عرفناها (وهناك قواعد عديدة لصيغ التحقق وقمت باختيار</p><p>(\\d{2}-)?\\d{7}</p><p>والتي تعني أن المستخدم يمكنه ادخال رقمين في البداية ووضع &#8211; بعدهم ومن ثم اكمال الرقم بسبعة أعداد. كما يحق له عدم ادخال الرقمين الأولين وعدم ادخال &#8211; ولكنه يجب أن يدخل سبعة أعداد. فمثلا الرقم 01-1234567 هو رقم صحيح، والرقم 1234567صحيح ولكن 1-1234567 والرقم 123456 هو غير صحيح.).</p><p>تقوم الدالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">matcher<span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>بمقارنة الرقم المدخل من قبل المستخدم بالرقم المنشأ الذي يتبع الصيغة التي عرّفناها. تقوم الدالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">validatePhoneNumber<span style="color: #009900;">&#40;</span>...<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>بإعادة صح أم خطأ True or Flase .</p><p>المجموعة المجهولة الخاصة بالزر تصبح على النحو التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;">callButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>validatePhoneNumber<span style="color: #009900;">&#40;</span>phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent callIntent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">ACTION_CALL</span>,Uri.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tel:&quot;</span> <span style="color: #339933;">+</span> phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callIntent.<span style="color: #006633;">setFlags</span><span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">FLAG_ACTIVITY_NEW_TASK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>callIntent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> validatePhoneNumber<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> number<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
Pattern phoneNumber1 <span style="color: #339933;">=</span> Pattern.<span style="color: #006633;">compile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;(<span style="color: #000099; font-weight: bold;">\\</span>d{2}-)?<span style="color: #000099; font-weight: bold;">\\</span>d{7}&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Matcher matcher <span style="color: #339933;">=</span> phoneNumber1.<span style="color: #006633;">matcher</span><span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> matcher.<span style="color: #006633;">matches</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div><p>نتحول الآن الى كيفية إظهار رسالة خطأ والتي استدعيناها في جملة ال Else في الدالة السابقة عبر استدعاء</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div><p>وهي دالة موجودة في مجموعة Activity التي يتبع لها تطبيقنا ككل. تقوم دالة أخرى موجودة في ال Activity أيضا وتسمى</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">onCreateDialog<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #009900;">&#41;</span></pre></div></div><p>باستقبال الطلب الذي أطلقته الدالة السابقة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span></pre></div></div><p>بداية، نقوم باستدعاء المكتبات والمجموعات التالية:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Dialog</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.AlertDialog</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.DialogInterface</span><span style="color: #339933;">;</span></pre></td></tr></table></div><p>ونقوم الآن بكتابة محتوى الدالة</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">onCreateDialog<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #009900;">&#41;</span></pre></div></div><p>بالشكل التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #003399;">Dialog</span> onCreateDialog<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>id <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> AlertDialog.<span style="color: #006633;">Builder</span><span style="color: #009900;">&#40;</span>AndroidPhoneDialer.<span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setTitle</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Error&quot;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setMessage</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;please enter a valid number&quot;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setPositiveButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;OK&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> DialogInterface.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span>DialogInterface dialog, <span style="color: #000066; font-weight: bold;">int</span> whichButton<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">/* User clicked OK so do some stuff */</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>لا صعوبة تذكر في هذه الدالة، ولاحظوا كيفية تحديد النص المراد عرضه. لاحظوا أيضا إمكانية عمل شيء معين في حال ضغط المستخدم زر ال OK في رسالة الخطأ. ولاحظوا أيضا أننا مررنا رقم ١ في showDialog ويمكننا طبعا تمرير أرقام مختلفة لعرض رسائل مختلفة بحسب الحالة، وهذا يتم عبر If .</p><p>اذا يصبح الملف المصدري ArdroidCaller.java  كاملا:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android_programmers_guide.AndroidPhoneDialer</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Intent</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.net.Uri</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.EditText</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">java.util.regex.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Dialog</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.AlertDialog</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.DialogInterface</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ArdroidCaller <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> EditText phoneNumber <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>EditText<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">phoneNumber</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> callButton <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">callButton</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>validatePhoneNumber<span style="color: #009900;">&#40;</span>phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent callIntent <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">ACTION_CALL</span>,Uri.<span style="color: #006633;">parse</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;tel:&quot;</span> <span style="color: #339933;">+</span> phoneNumber.<span style="color: #006633;">getText</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
callIntent.<span style="color: #006633;">setFlags</span><span style="color: #009900;">&#40;</span>Intent.<span style="color: #006633;">FLAG_ACTIVITY_NEW_TASK</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>callIntent<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">else</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
showDialog<span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">private</span> <span style="color: #000066; font-weight: bold;">boolean</span> validatePhoneNumber<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> number<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
Pattern phoneNumber1 <span style="color: #339933;">=</span> Pattern.<span style="color: #006633;">compile</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;(<span style="color: #000099; font-weight: bold;">\\</span>d{2}-)?<span style="color: #000099; font-weight: bold;">\\</span>d{7}&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
Matcher matcher <span style="color: #339933;">=</span> phoneNumber1.<span style="color: #006633;">matcher</span><span style="color: #009900;">&#40;</span>number<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> matcher.<span style="color: #006633;">matches</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">protected</span> <span style="color: #003399;">Dialog</span> onCreateDialog<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000000; font-weight: bold;">new</span> AlertDialog.<span style="color: #006633;">Builder</span><span style="color: #009900;">&#40;</span>AndroidPhoneDialer.<span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setTitle</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Error&quot;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setMessage</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;please enter a valid number&quot;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">setPositiveButton</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;OK&quot;</span>, <span style="color: #000000; font-weight: bold;">new</span> DialogInterface.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span>DialogInterface dialog, <span style="color: #000066; font-weight: bold;">int</span> whichButton<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
&nbsp;
.<span style="color: #006633;">create</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-1.56.10-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1015  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-1.56.10-PM-300x273.png" alt="" width="300" height="273" /></a></p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-1.56.29-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1016    aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-1.56.29-PM-300x275.png" alt="" width="300" height="275" /></a></p><p><strong>٢- استخدام زر القائمة Menu وكيفية اضافة خيارات له.</strong></p><p>ما سنقوم بعمله بكل بساطة هو انشاء المشروع التالي:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-2.08.16-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1017  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-2.08.16-PM-220x300.png" alt="" width="220" height="300" /></a></p><p>والذي سيقوم باستخدام زر القائمة لعرض محتوياتها، ولكل خيار، سنقوم بعمل نشاط Activity معين. اذا سنبدأ بكيفية توظيف زر القائمة.</p><p>نقوم بداية باستدعاء المكتبات التالية:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.Menu</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.MenuItem</span><span style="color: #339933;">;</span></pre></td></tr></table></div><p>ومن ثم نقوم بإعادة كتابة Override الدالة الموجودة في مجموعة Activity والمسماة onCreateOptionsMenu على النحو التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;">@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onCreateOptionsMenu<span style="color: #009900;">&#40;</span><span style="color: #003399;">Menu</span> menu<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreateOptionsMenu</span><span style="color: #009900;">&#40;</span>menu<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>الدالة menu.add لها عدة أشكال ولكننا سنستعمل:</p><div
class="wp_syntax"><div
class="code"><pre class="java" style="font-family:monospace;">add <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> groupId, <span style="color: #000066; font-weight: bold;">int</span> itemId, <span style="color: #000066; font-weight: bold;">int</span> order, CharSequence title<span style="color: #009900;">&#41;</span></pre></div></div><p>حيث أن أول عنصر يدل على رقم المجموعة الخاصة بخيارات القوائم، وافترضت أنهم في مجموعة واحدة، لذلك قمت بوضع 0 عند استدعاء الدالة كما هو الحال في عنصر order حيث أنني لا أهتم بترتيب الخيارات. itemId هو ما يهمني لذلك استخدمت الترقيم لمعرفة هوية الخيار.</p><p>الدالة onCreateOptionsMenu تقوم بتعبئة الخيارات في القائمة عند تشغيل البرنامج. لذلك، سنقوم بإعادة كتابة دالة أخرى موجودة في Activity والتي يتم استدعاؤها بمجرد اختيار أي خيار في القائمة وهي onOptionsItemSelected. في هذه الدالة، سنستخدم Switch المعروفة وذلك لاطلاق النشاط المقترن بالخيار الذي اختير من قبل المستخدم على النحو التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>الشكل النهائي لملف:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.Menu</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.MenuItem</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ArdroidMultiActs <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onCreateOptionsMenu<span style="color: #009900;">&#40;</span><span style="color: #003399;">Menu</span> menu<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreateOptionsMenu</span><span style="color: #009900;">&#40;</span>menu<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-2.36.09-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1018  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-2.36.09-PM-229x300.png" alt="" width="229" height="300" /></a></p><p><strong>٣- كيفية عمل تطبيق متعدد الأنشطة.</strong></p><p>لنتذكر قضية مهمة وهي أن كل نشاط له ملف مصدري .java وله ملف .xml خاص بتصميمه. وهذا ما سنفعله. سنقوم بإنشاء ملف xml للنشاط الأول تحت اسم act1.xml في res/layout وليكن كالتالي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:padding</span>=<span style="color: #ff0000;">&quot;30dip&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:background</span>=<span style="color: #ff0000;">&quot;#8123f555&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;AutoCompleteTextView</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/act1Test&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>ثم نقوم بإنشاء ملف Act1.java داخل ال Package في src. المطلوب من النشاط هو عرض مربع النص التلقائي وهو الذي يقوم باقتراح عدة خيارات للمستخدم (نقوم بتحديدها مسبقا) ليكمل عنه الكلمة بدلا من كتابتها كاملة. سنقوم بوضع ما يلي في الملف:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.ArrayAdapter</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.AutoCompleteTextView</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Act1 <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">act1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">//android.R.layout.simple_dropdown_item_1line is an existing file that contains a style of presenting the list in the application</span>
&nbsp;
ArrayAdapter<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>String<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> monthArray <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ArrayAdapter<span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span>String<span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>,android.<span style="color: #006633;">R</span>.<span style="color: #006633;">layout</span>.<span style="color: #006633;">simple_dropdown_item_1line</span>,months<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> AutoCompleteTextView textView <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>AutoCompleteTextView<span style="color: #009900;">&#41;</span> findViewById<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">act1Test</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
textView.<span style="color: #006633;">setAdapter</span><span style="color: #009900;">&#40;</span>monthArray<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">static</span> <span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> months <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">String</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #009900;">&#123;</span><span style="color: #0000ff;">&quot;January&quot;</span>,<span style="color: #0000ff;">&quot;February&quot;</span>,<span style="color: #0000ff;">&quot;March&quot;</span>,
&nbsp;
<span style="color: #0000ff;">&quot;April&quot;</span>,<span style="color: #0000ff;">&quot;May&quot;</span>, <span style="color: #0000ff;">&quot;June&quot;</span>,<span style="color: #0000ff;">&quot;July&quot;</span>,<span style="color: #0000ff;">&quot;August&quot;</span>,<span style="color: #0000ff;">&quot;September&quot;</span>,<span style="color: #0000ff;">&quot;October&quot;</span>,<span style="color: #0000ff;">&quot;November&quot;</span>,
&nbsp;
<span style="color: #0000ff;">&quot;December&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>بالنسبة للنشاط الثاني، نقوم بإنشاء ملف act2.xml :</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;LinearLayout</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:orientation</span>=<span style="color: #ff0000;">&quot;vertical&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;CheckBox</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/act2CheckBox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Act2 checkbox&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span> <span style="color: #000066;">android:id</span>=<span style="color: #ff0000;">&quot;@+id/act2ColorButton&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_width</span>=<span style="color: #ff0000;">&quot;fill_parent&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:layout_height</span>=<span style="color: #ff0000;">&quot;wrap_content&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:text</span>=<span style="color: #ff0000;">&quot;Change Text Color&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/LinearLayout<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>والنشاط الثاني يقوم بعرض Check Box وزر خاص بتغيير لون النص. نقوم بوضع الكود التالي في Act2.java:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.View</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.Button</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.graphics.Color</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.widget.CheckBox</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Act2 <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">act2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> CheckBox checkbox <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>CheckBox<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">act2CheckBox</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">final</span> <span style="color: #003399;">Button</span> changeButton <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003399;">Button</span><span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">this</span>.<span style="color: #006633;">findViewById</span><span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">id</span>.<span style="color: #006633;">act2ColorButton</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
changeButton.<span style="color: #006633;">setOnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span>.<span style="color: #006633;">OnClickListener</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onClick<span style="color: #009900;">&#40;</span><span style="color: #003399;">View</span> v<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
changeColor<span style="color: #009900;">&#40;</span>checkbox<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> changeColor<span style="color: #009900;">&#40;</span>CheckBox checkbox<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
checkbox.<span style="color: #006633;">setTextColor</span><span style="color: #009900;">&#40;</span><span style="color: #003399;">Color</span>.<span style="color: #006633;">RED</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><div><span
style="font-family: Monaco, 'Times New Roman', 'Bitstream Charter', Times, serif;font-size: small"><br
/> </span></div><p>نعود الآن الى ملف ArdroidMultiActs.java لنضيف ما يلي لجملة ال Switch:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>ونقوم الآن بكتابة الدالتين showAct1 و showAct2. بداية، دعوني أصحح أحد المفاهيم التي كنت قد مررت عليها وهو مفهوم النوايا Intents. كنت قد ذكرت التالي:</p><p><span
style="font-family: Tahoma, sans-serif;line-height: 18px;font-size: 12px;color: #404040"><em><strong>&#8220;</strong>النوايا Intents بكل بساطة هي وسيلة لتمرير المعلومات من نشاط لآخر وبكلمات أخرى، تمرير ما ينوي فعله المبرمج بين الأنشطة. ولكنها تستخدم فقط في حالة وددنا استخدام نشاط خارج التطبيق الذي نعمل عليه. مثلا، اذا أراد المبرمج من تطبيقه أن يأخذ كلمة معينة من المستخدم ليبحث عنها بين ملفات النظام فإنه سيقوم بتصميم نشاط تحتوي واجهته على حقل نصي يمكن للمستخدم الكتابة فيها، وما يتم ادخاله يتم تمريره الى نظام الأندرويد تحت نية عمل بحث في ملفات النظام (وال Intent اسمه في هذه الحالة: SEARCH_ACTION) الذي يستقبل الطلب ويفهم النية\المعلومة المرغوب تحقيقها ويستدعي بدوره نشاط البحث Search Activity. نلاحظ أن النية تم تمريرها الى نشاط خارج التطبيق، وهو نشاط يقوم عليه نظام التشغيل. بالنسبة للأنشطة التي ذكرتها في معرض حديثي عن تطبيق الرسائل النصية، فهي أنشطة داخل التطبيق الواحد ولا يتم استخدام مفهوم النوايا Intents عليها (سنرى كيفية التعامل معها في الدرس القادم).<strong>&#8220;</strong></em></span></p><p>وهذا غير صحيح بشكل كامل حقيقة. النوايا يمكن استخدامها داخل التطبيق الواحد، ويتم استدعاء الأنشطة المختلفة باستخدام هذا المفهوم، ولكن الذي كنت أقصده بما ذكرت في الأعلى هو عدم امكانية استخدام النوايا المعرفة مسبقا ك SEARCH_ACTION وغيرها لاستدعاء نشاط داخلي، بل يجب علينا تعريف نوايا خاصة بتطبيقنا. وهذا ما سنقوم به في داخل الدالتين أعلاه على النحو التالي:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act1.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act2.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>يصبح ملف ArdroidMultiActs.java كاملا:</p><div
class="wp_syntax"><table><tr><td
class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
</pre></td><td
class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">android.programming.series.ArdroidMultiActs</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.app.Activity</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.content.Intent</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.os.Bundle</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.Menu</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">android.view.MenuItem</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> ArdroidMultiActs <span style="color: #000000; font-weight: bold;">extends</span> Activity <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #008000; font-style: italic; font-weight: bold;">/** Called when the activity is first created. */</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> onCreate<span style="color: #009900;">&#40;</span>Bundle savedInstanceState<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreate</span><span style="color: #009900;">&#40;</span>savedInstanceState<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
setContentView<span style="color: #009900;">&#40;</span>R.<span style="color: #006633;">layout</span>.<span style="color: #006633;">main</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
@Override
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onCreateOptionsMenu<span style="color: #009900;">&#40;</span><span style="color: #003399;">Menu</span> menu<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">super</span>.<span style="color: #006633;">onCreateOptionsMenu</span><span style="color: #009900;">&#40;</span>menu<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
menu.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0000ff;">&quot;Act2&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> onOptionsItemSelected <span style="color: #009900;">&#40;</span><span style="color: #003399;">MenuItem</span> item<span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">switch</span> <span style="color: #009900;">&#40;</span>item.<span style="color: #006633;">getItemId</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">:</span>
&nbsp;
showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">:</span>
&nbsp;
showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">true</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct1<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act1.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> showAct2<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
&nbsp;
<span style="color: #009900;">&#123;</span>
&nbsp;
Intent autocomplete2 <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Intent<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span>, Act2.<span style="color: #000000; font-weight: bold;">class</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
startActivity<span style="color: #009900;">&#40;</span>autocomplete2<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div><p>يبقى لدينا إضافة ما يسمى بفلتر النوايا Intents Filter وهو عبارة عن كود XML يتم وضعه في ArdroidMultiActs Manifest ومهمته تمرير النوايا الى لنشاط المقترن بها وتمييزها عن الآخرين بشكل صحيح. نقوم بإضافة ما يلي:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>ليصبح الملف كاملا:</p><div
class="wp_syntax"><div
class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;manifest</span> <span style="color: #000066;">xmlns:android</span>=<span style="color: #ff0000;">&quot;http://schemas.android.com/apk/res/android&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">package</span>=<span style="color: #ff0000;">&quot;android.programming.series.ArdroidMultiActs&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:versionCode</span>=<span style="color: #ff0000;">&quot;1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:versionName</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;application</span> <span style="color: #000066;">android:icon</span>=<span style="color: #ff0000;">&quot;@drawable/icon&quot;</span> <span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.ArdroidMultiActs&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;@string/app_name&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act1&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 1&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;activity</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;.Act2&quot;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000066;">android:label</span>=<span style="color: #ff0000;">&quot;activity 2&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;action</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.action.MAIN&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;category</span> <span style="color: #000066;">android:name</span>=<span style="color: #ff0000;">&quot;android.intent.category.LAUNCHER&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/intent-filter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/activity<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/application<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;uses-sdk</span> <span style="color: #000066;">android:minSdkVersion</span>=<span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
&nbsp;
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/manifest<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div><p>نقوم بتشغيل التطبيق لنحصل على:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.26.18-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1019  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.26.18-PM-203x300.png" alt="" width="203" height="300" /></a></p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.26.53-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1020  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.26.53-PM-203x300.png" alt="" width="203" height="300" /></a></p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.27.15-PM.png" rel="lightbox[1002]"><img
class="size-medium wp-image-1021  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-18-at-10.27.15-PM-203x300.png" alt="" width="203" height="300" /></a></p><p>الدرس القادم سيكون عبارة عن عدد من الأمثلة المتنوعة التي سأختارها من هنا وهناك وأعرضها عليكم.</p><p>تحياتي لكم <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/01/18/android-programming-series-l4/feed/</wfw:commentRss> <slash:comments>15</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/01/Android-SS1.jpg" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس الثاني</title><link>http://ardroid.com/2010/01/04/android-programming-series-l2/</link> <comments>http://ardroid.com/2010/01/04/android-programming-series-l2/#comments</comments> <pubDate>Mon, 04 Jan 2010 21:16:32 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=672</guid> <description><![CDATA[مرحبا بكم ! في الدرس الماضي، قمنا بشرح طريقة تهيئة البيئة البرمجية التي سنستخدمها في تعلم برمجة تطبيقات الأندرويد. درسنا اليوم، سيكون عن: ١. تشغيل الأمثلة Samples المتوفرة في الحزمة البرمجية التطويرية للأندرويد Android SDK. ٢. دورة حياة تطبيق الأندرويد Software Development Life Cycle SDLC. ٣. برمجة تطبيق &#8220;أهلا بالعالم&#8221; Hello World Application والتعرف على&#8230; <a
href="http://ardroid.com/2010/01/04/android-programming-series-l2/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="249" height="18" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-11.51.14-PM.png" class="attachment-large" alt="Screen shot 2010-01-04 at 11.51.14 PM" title="Screen shot 2010-01-04 at 11.51.14 PM" /><p>مرحبا بكم !</p><p>في الدرس الماضي، قمنا بشرح طريقة تهيئة البيئة البرمجية التي سنستخدمها في تعلم برمجة تطبيقات الأندرويد.</p><p>درسنا اليوم، سيكون عن:</p><p>١. تشغيل الأمثلة Samples المتوفرة في الحزمة البرمجية التطويرية للأندرويد Android SDK.<br
/> ٢. دورة حياة تطبيق الأندرويد Software Development Life Cycle SDLC.<br
/> ٣. برمجة تطبيق &#8220;أهلا بالعالم&#8221; Hello World Application والتعرف على الملفات المكونة لتطبيقات الأندرويد.</p><p>هل أنتم جاهزون؟ لنبدأ <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p><strong>١. تشغيل الأمثلة Samples المتوفرة في الحزمة البرمجية التطويرية للأندرويد Android SDK</strong></p><p>سنقوم بداية بالتأكد من وجود المجلد الذي يحتوي على الأمثلة. سنتوجه الى المجلد الذي حفظنا فيه ال SDK. ومن ثم:</p><p>Platforms&gt;android-2.0.1&gt;samples</p><p>الآن نتوجه الى برنامج الاكليبس ونقوم بالتأكد من وجود نسخة افتراضية من جهاز الأندرويد جاهزة للعمل (طبعا في نافذة منفصلة عن الاكليبس):</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.03.06-PM.png" rel="lightbox[672]"><img
class="size-medium wp-image-593  aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.03.06-PM-300x210.png" alt="" width="300" height="210" /></a></p><p>من الآن فصاعدا، ينصح بإبقاء النسخة الافتراضية فعالة. بمعنى، لا داعي من إغلاق نسخة الجهاز الافتراضي من أندرويد بعد تشغيل التطبيقات عليها.</p><p>نقوم الآن بالتوجه الى:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.23.33-AM.png" rel="lightbox[672]"><img
class="size-medium wp-image-741  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.23.33-AM-300x53.png" alt="" width="300" height="53" /></a></p><p>ثم</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.24.49-AM.png" rel="lightbox[672]"><img
class="size-full wp-image-742  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.24.49-AM.png" alt="" width="187" height="166" /></a></p><p>ثم</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.33.13-AM.png" rel="lightbox[672]"><img
class="size-medium wp-image-743  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.33.13-AM-262x300.png" alt="" width="262" height="300" /></a></p><p>تأكد من إدخال جميع القيم بشكل صحيح. اضغط على Finish لترى أن المثال الخاص بلعبة الثعبان Snake قد تم فتحه.</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.37.12-AM.png" rel="lightbox[672]"><img
class="size-medium wp-image-744  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.37.12-AM-203x300.png" alt="" width="203" height="300" /></a></p><p>دعكم الآن من هذه الملفات ولنقم بتشغيل التطبيق. اضغط على:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.37.57-AM.png" rel="lightbox[672]"><img
class="size-medium wp-image-745  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.37.57-AM-300x82.png" alt="" width="300" height="82" /></a></p><p>سيظهر المربع التالي. اختر Android Application ثم اضغط OK:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.38.12-AM.png" rel="lightbox[672]"><img
class="size-medium wp-image-746  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.38.12-AM-300x298.png" alt="" width="300" height="298" /></a></p><p>ننتقل مباشرة الى نافذة الجهاز الافتراضي، فنجد التطبيق يعمل عليها:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.39.08-AM.png" rel="lightbox[672]"><img
class="size-medium wp-image-747    aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.39.08-AM-300x211.png" alt="" width="300" height="211" /></a></p><p>ملاحظة: ربما تواجهك مشكلة أثناء محاولتك تشغيل التطبيق وتظهر لك رسالة تفيد بأن التطبيق يحتوي على خطأ معين. الحل قد يبدو غريبا بعض الشيء، ولكنه يعمل على الأقل. افتح الملف الذي يحمل اسم Snake_layout.xml وهو موجود تحت مجلد res/layout وقم بحذف أي مسافة بيضاء white space ومن ثم احفظ الملف. يفترض أن تختفي العلامة الحمراء المجاورة لاسم التطبيق في العمود الجانبي الذي يحتوي ملفات التطبيق. يمكنك الآن تشغيل البرنامج عبر Run.</p><p><strong>٢. دورة حياة تطبيق الأندرويد Software Development Life Cycle SDLC</strong></p><p>من ناحية برمجية بحتة، من المفترض أن يحتوي أي تطبيق أندرويدي على عدد من الدوال والتي ستتضح مهمة كل منها بمجرد قراءة اسمها:</p><ul><li>onCreate</li><li>onStart</li><li>Process-specific events</li><li>onStop</li><li>onDestroy</li></ul><p>ببساطة، الدالة Function الأولى تحوي الأوامر المتعلقة ببداية انشاء التطبيق، كتهيئة الواجهة الرسومية له واعداد البيانات المرتبطة بالقوائم. الدالة الثانية، onStart، تحوي الأوامر الخاصة بالتطبيق عند بداية عمل العملية Process الخاصة به، وهي اذا الدالة التي عند بداية تنفيذها، نرى التطبيق وقد ظهر على الشاشة. الدالة الثالثة هي ليست دالة فعليا بقدر ماهي عدد من الدوال Functions التي تتعامل مع الأحداث Events التي تحدث أثناء عمل التطبيق، كتحليل قراءات الجي بي اس ودخول قاعدة بيانات وغيرها.</p><p>دالة onStop تتعلق بالعملية Process الخاصة بالتطبيق عند توقفها. يقترن استدعاء هذه الدالة باختفاء التطبيق من على الشاشة Foreground وعمله في الخلفية Background (أو حتى توقفه مؤقتا). فمثلا اذا ضغطنا الزر الذي يعيدنا الى الشاشة الرئيسية Home button أثناء استخدامنا لأحد التطبيقات، فإن التطبيق سيستدعي هذه الدالة ويختفي من على الشاشة. تختلف التطبيقات في التعامل مع هذا الحدث. فهناك تطبيقات تستدعي دالة onDestroy المشروحة في النقطة اللاحقة، أو أن يتم الحفاظ على العملية في الخلفية وإعادة تشغيلها عندما يضغط المستخدم على أيقونة التطبيق من جديد عبر استدعاء الدالة onRestart.</p><p>دالة onDestroy يتم استدعاؤها في حال رغبنا بإنهاء التطبيق وبالتالي قيام نظام التشغيل بقتل\انهاء العلمية الخاصة به.</p><p><strong>٣. برمجة تطبيق &#8220;أهلا بالعالم&#8221; Hello World Application والتعرف على الملفات المكونة لتطبيقات الأندرويد</strong></p><p>سنقوم الآن بإنشاء مشروع جديد. حاول أن تغلق جميع المشاريع المفتوحة حاليا في برنامج الاكليبس (اضغط بالزر الأيمن على اسم المشروع ومن ثم Close Project).</p><p>اضغط الآن على:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.23.33-AM.png" rel="lightbox[672]"><img
class="size-medium wp-image-741      aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.23.33-AM-300x53.png" alt="" width="300" height="53" /></a></p><p>ثم</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.24.49-AM.png" rel="lightbox[672]"><img
class="size-full wp-image-742  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.24.49-AM.png" alt="" width="187" height="166" /></a></p><p>نقوم بإدخال البيانات التالية:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-1.05.34-PM.png" rel="lightbox[672]"><img
class="size-medium wp-image-751  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-1.05.34-PM-228x300.png" alt="" width="228" height="300" /></a></p><p>بعد إنشاء المشروع، تظهر لنا الملفات التالية:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-1.06.42-PM.png" rel="lightbox[672]"><img
class="size-full wp-image-752  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-1.06.42-PM.png" alt="" width="213" height="137" /></a></p><p>بالنسبة لملف ال AndroidManifest.xml فهو ملف يحتوي الاعدادات العامة للتطبيق (لمطوري ال ASP.NET، هذا الملف مكافىء لحد ما لملف ال Web.config). عبر هذا الملف، يتم التحكم بأنشطة التطبيق Activities، وال Intents وأذونات التطبيق Permissions. (سنقوم بشرح هذه المفاهيم لاحقا).</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-6.59.49-PM.png" rel="lightbox[672]"><img
class="size-medium wp-image-753  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-6.59.49-PM-300x229.png" alt="" width="300" height="229" /></a></p><p>بالانتقال الى مجلد res، نجد أن هذا المجلد يحتوي على المصادر والمواد التي سيتم استخدامها في التطبيق. كما في الصورة في الأسفل، نجد المجلدات التالية:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.06.51-PM.png" rel="lightbox[672]"><img
class="size-full wp-image-754  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.06.51-PM.png" alt="" width="204" height="191" /></a></p><ul><li>drawable: هنا نضع ملفات الصور التي يستخدمها التطبيق.</li><li>layout: يحتوي هذا المجلد على ملفات من نوع XML وهي المسؤولة عن تصميم وتهيئة الواجهات الرسومية Views and User Interface الخاصة بالتطبيق.</li><li>values: يحتوي على القيم النصية المشتركة Global String Values التي يمكن استخدامها في التطبيق (وما يحتويه من أنشطة وواجهات Activities and Views)</li></ul><p>بالنسبة لمجلد assets، يتم وضع ملفات الصوت والحركة Animation في داخله.</p><p>مجلد Android 2.0.1 هو مجلد يحتوي على المكتبات البرمجية Libraries المتاحة للتطبيق كي يستخدمها. في الواقع هو مجلد يحتوي على مؤشرات الى هذه المكتبات الموجودة في الحزمة التطويرية للأندرويد.</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.23.03-PM.png" rel="lightbox[672]"><img
class="size-full wp-image-755  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.23.03-PM.png" alt="" width="239" height="36" /></a></p><p>مجلد gen يحتوي ملفا اسمه R.java وهو ملف يتم تشكيله بشكل آلي ليحتوي على مؤشرات Pointers تشير الى المواد والمصادر الموجودة في res.</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.28.43-PM.png" rel="lightbox[672]"><img
class="size-medium wp-image-756  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.28.43-PM-300x214.png" alt="" width="300" height="214" /></a></p><p>أخيرا، نصل الى مجلد src والذي يحتوي الشفرة المصدرية Source Code للتطبيق.</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.36.18-PM.png" rel="lightbox[672]"><img
class="size-medium wp-image-757  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.36.18-PM-300x48.png" alt="" width="300" height="48" /></a></p><p>نفتح الآن الملف HelloWorldArdroid.java :</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.44.04-PM.png" rel="lightbox[672]"><img
class="size-medium wp-image-758  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.44.04-PM-300x143.png" alt="" width="300" height="143" /></a></p><p>في أعلى الملف، نستدعي المكتبات التالية:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.47.20-PM.png" rel="lightbox[672]"><img
class="size-full wp-image-759  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.47.20-PM.png" alt="" width="222" height="36" /></a></p><p>وهاتان المكتبتان هما من أهم المكتبات التي سيتم استخدامها في برمجة جميع التطبيقات. ولا ننس أن من سيتولى عملية الاستدعاء الفعلية هو مجلد Android 2.0.1 آنف الذكر.</p><p>ننتقل الى ال Class الخاصة بالتطبيق. لاحظ أن دالة onCreate قد تم تحديد مهمتها باستدعاء الدالة</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-11.51.14-PM.png" rel="lightbox[672]"><img
class="size-full wp-image-778  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-11.51.14-PM.png" alt="" width="249" height="18" /></a></p><p
style="text-align: center"><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.52.39-PM.png" rel="lightbox[672]"><img
class="size-medium wp-image-760  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.52.39-PM-300x93.png" alt="" width="300" height="93" /></a></p><p>والتي تم تمرير اليها المؤشر Pointer الموجود في ملف R.java والذي يشير بدوره الى ملف ال XML الموجود في مجلد res/layout المسؤول عن إعداد الواجهة الرسومية.</p><p>بفتح ملف ال main.xml  الموجود في res/layout نجد عددا من عناصر ال XML وما يهمنا هو &lt;TextView&gt;</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.59.49-PM.png" rel="lightbox[672]"><img
class="size-full wp-image-761  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-7.59.49-PM.png" alt="" width="287" height="76" /></a></p><p>نجد أن لهذا العنصر الخصائص Attributes التالية: layout_width, layout_height, text.</p><p>الخاصيتان Width and Height تهتمان بطريقة عرض النص (طوله وعرضه). الخاصية الأخيرة تحتوي على قيمة النص. نجد أن القيمة هي: @string/hello وهذا يعني أن النص موجود في مكان ما. تكلمنا في منتصف الدرس عن ملف يحتوي القيم النصية التي يمكن استدعاؤها من أي مكان في التطبيق وهو الملف الموجود تحت مجلد res/values :</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-8.08.13-PM.png" rel="lightbox[672]"><img
class="size-medium wp-image-762  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-8.08.13-PM-300x47.png" alt="" width="300" height="47" /></a></p><p>نجد القيمة الفعلية للنص hello ويمكننا الآن تغييرها لو أردنا.</p><p>نقوم الآن بتشغيل البرنامج عبر Run&gt;Run :</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.37.57-AM.png" rel="lightbox[672]"><img
class="size-medium wp-image-745  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-12.37.57-AM-300x82.png" alt="" width="300" height="82" /></a></p><p>ننتقل الى نافذة الجهاز الافتراضي وننتظر قليلا حتى تظهر النتيجة التالية:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-8.13.10-PM.png" rel="lightbox[672]"><img
class="size-medium wp-image-763  aligncenter" src="http://ardroid.com/wp-content/uploads/2010/01/Screen-shot-2010-01-04-at-8.13.10-PM-300x210.png" alt="" width="300" height="210" /></a></p><p>ممتاز! الآن نكون قد شغلنا التطبيق الأول لنا في بيئة الأندرويد. أدعوكم الآن الى محاولة التعرف بشكل أكبر على الملفات والمجلدات ومحاولة فهم الغرض منها.</p><p>في الدرس القادم، سنبدأ بكتابة الكود الخاص بإظهار نص بطريقة مغايرة للموجودة في الأعلى، ومن ثم طريقة عرض صور في التطبيق، وختاما سنقوم بالتعرف الى مفهوم ال Intents أو النوايا (بصراحة عجزت عن تعريبها بكلمة أخرى <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) وهي حقيقة تعمل كما النوايا، أي أن المبرمج يكون لديه نية في عمل مكالمة طوارىء في وقت معين من التطبيق، أو مثلا عرض جميع التطبيقات الموجودة في الجهاز على شكل قائمة وغيرها.</p><p>سيكون الدرس القادم وجبة برمجية متقدمة قليلا فكونوا بانتظارنا. والمجال مفتوح دائما لاستقبال مقترحاتكم وتعليقاتكم حول هذه السلسلة.</p><p>دمتم بودّ.</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2010/01/04/android-programming-series-l2/feed/</wfw:commentRss> <slash:comments>29</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2010/01/native.jpg" /> </item> <item><title>سلسلة تعلم برمجة تطبيقات الأندرويد .. الدرس الأول</title><link>http://ardroid.com/2009/12/30/android-programming-series-l1/</link> <comments>http://ardroid.com/2009/12/30/android-programming-series-l1/#comments</comments> <pubDate>Wed, 30 Dec 2009 14:45:08 +0000</pubDate> <dc:creator>وائل العلواني</dc:creator> <category><![CDATA[دروس وتعليمات]]></category> <category><![CDATA[Eclipse]]></category> <category><![CDATA[Google]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[برمجة]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=583</guid> <description><![CDATA[تتطرق هذه السلسلة التعليمية لأحد أهم أنظمة تشغيل الأجهزة الكفية والمحمولة الذي بدأ يبرز نجمه مؤخرا وهو نظام الأندرويد. أندرويد يقدم للمطورين بيئة تطوير قوية وغير محدودة، وإن كنت متشوقا لبدء تطوير البرامج لأندرويد، أو لديك الحماس لتجرب كيف تجري تلك العملية حتى لو كان هذا على سبيل التجربة العلمية، فسلسلة الدروس هذه سوف تساعدك&#8230; <a
href="http://ardroid.com/2009/12/30/android-programming-series-l1/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="500" height="330" src="http://ardroid.com/wp-content/uploads/2009/12/eclipse_logo.gif" class="attachment-large" alt="eclipse_logo" title="eclipse_logo" /><p>تتطرق هذه السلسلة التعليمية لأحد أهم أنظمة تشغيل الأجهزة الكفية والمحمولة الذي بدأ يبرز نجمه مؤخرا وهو نظام الأندرويد. أندرويد يقدم للمطورين بيئة تطوير قوية وغير محدودة، وإن كنت متشوقا لبدء تطوير البرامج لأندرويد، أو لديك الحماس لتجرب كيف تجري تلك العملية حتى لو كان هذا على سبيل التجربة العلمية، فسلسلة الدروس هذه سوف تساعدك خطوة بخطوة كي تنطلق بسرعة إلى عالم تطوير التطبيقات لأندرويد.</p><p>سنتعلم برمجة التطبيقات Applications على منصة الأندرويد بشكل متدرج يضمن إلمام القارىء بمختلف المراحل التي تمر بها عملية البرمجة.</p><p
style="text-align: center"><p>بداية أدعوكم لقراءة المقالة التي أدرجناها في موقعنا والتي تحدثت عن <a
href="http://ardroid.com/2009/11/23/introduction-to-androi/">الأندرويد في لمحة</a> وما يهمنا هو المعلومات التقنية الخاصة بهذا النظام.</p><p>يتم تطوير تطبيقات الأندرويد بلغة <a
href="http://java.sun.com/">الجافا Java</a> ويتم تشغيلها على نواة لينوكس Linux Kernel 2.6 . ما يميز الأندرويد عن غيره هو أنه يتعامل مع جميع التطبيقات المتاحة من طرف ثالث Third Party  بنفس الأولوية المعطاة لتطبيقات النظام نفسه، وهذا ما تفتقره الأنظمة الأخرى التي تعطي أولوية لتطبيقات قلب النظام System Core  .</p><p>كل تطبيق في الأندرويد يعمل على شكل عملية مستقلة <a
href="http://en.wikipedia.org/wiki/Process_(computing)">Process </a>على نسخة مستقلة من آلة افتراضية <a
href="http://en.wikipedia.org/wiki/Virtual_machine">Virtual Machine</a> من نوع Dalvik. وللمطور كامل الصلاحية في النفاذ الى العتاد الذي يستطيع نظام التشغيل استخدامه، مما يضمن عدم تحديد أو تأطير المبرمج بأي شكل وهذا يعني انتاج تطبيقات ابداعية.</p><p>هناك نقطة تحسب لصالح تطبيقات الأندرويد وهي التسهيلات المعطاة من غووغل لمطوري التطبيقات لربط تطبيقاتهم بخدمات وتطبيقات غووغل المعروفة كـ Google Maps, Gtalk, Gmail,… وذلك لأن غووغل عضو في تحالف الـ <a
href="http://www.openhandsetalliance.com/">Open Handset Alliance OHA </a> الذي يضم شركات كبيرة منها: Google, HTC, Intel, LG, Motorla, Nvidia, Samsung, Sony Ericsson, Toshipa, Vodafone, T-Mobile, وغيرها  ومن أهم أهداف هذا التحالف تشكيل ووضع مقاييس جديدة لأجهزة الهواتف النقالة. وكان أندرويد هو أول مشروع تم الإعلان عنه من قبل هذه المجموعة.</p><p><strong>بعد هذه المقدمة البسيطة، قد يتساءل البعض، وماهي البيئة البرمجية\التطويرية التي سنستخدمها؟ وماهي متطلبات سلسلة &#8220;تعلم برمجة تطبيقات الأندرويد&#8221;؟</strong></p><p
style="text-align: center"><p
style="text-align: center"><img
class="size-medium wp-image-628 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/eclipse_logo-300x198.gif" alt="" width="300" height="198" /></p><p>الجواب أننا سنستخدم البيئة التطويرية أو ما يعرف بـ Integrated Development Environment IDE الذي نصحت به الـ OHA وهو البرنامج الشهير <a
href="http://www.eclipse.org/">Eclipse</a>. سنقوم بإضافة ملحقة Android Plug-in الى الاكليبس. كما سنقوم بتشغيل التطبيقات التي سنكتبها على المحاكي Emulator الذي يطابق تماما عمل الأندرويد على الأجهزة المتنقلة. في نهاية هذا الدرس، سنكون قد أعددنا الاكليبس ليكون قادرا على تشغيل تطبيقات الأندرويد.</p><p>بالنسبة للسؤال الثاني، تتطلب هذه السلسلة من القارىء أن يكون ملما بلغة الجافا بمستوى مبتدىء متقدم الى متوسط.</p><p>الشرح سيأخذ بعين الاعتبار مستخدمي الويندوز والماك، ولكن الصور ستكون مأخوذة من جهاز الماك خاصتي <img
src='http://ardroid.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p><p>بقي التنويه على أنني لازلت أتعلم برمجة الأندرويد ولم أحترفها بعد، لذلك أعتذر مقدما إن لم يلق أحدكم جوابا عندي، ولكنني سأبذل كل الجهد في المساعدة على تحصيل الإجابة. والنقطة الثانية هي أنني كنت محتارا في كيفية تنظيم هذه السلسلة لذلك قررت الاستعانة بأحد الكتب التي تشرح برمجة الأندرويد وهو كتاب: <a
href="http://www.amazon.com/ANDROID-PROGRAMMERS-GUIDE-Jerome-DiMarzio/dp/0071599886">Android: A Programmer’s Guide لمؤلفه J.F DiMarzio ودار النشر McGrawHill</a>.</p><p><strong>هل أنتم جاهزون؟ حسنا لنبدأ :</strong></p><p>1- قبل كل شيء، يجب أن يكون لدينا Java Runtime Environment JRE التي تجعل تنفيذ تطبيقات الجافا ممكنا على جهاز الكمبيوتر. اذا كنت تملكها، فننصح بتحديثها لآخر إصدار JRE 6 Update 17، ولتحميل نسخة منها: <a
href="http://java.sun.com/javase/downloads/index.jsp">http://java.sun.com/javase/downloads/index.jsp</a></p><p>2- الخطوة الثانية هي تحميل الاكليبس: <a
href="http://www.eclipse.org/downloads/">http://www.eclipse.org/downloads/</a></p><p>اختر Eclipse IDE for Java Developers (92 MB) واختر النسخة المناسبة لنظام التشغيل الذي تملكه (بالنسبة للماك، اختر Cocoa).</p><p>أثناء تنصيب البرنامج، يفضل الموافقة على <strong>مكان</strong> انشاء منطقة العمل Workspace التي يقترحها الاكليبس.</p><p>3- الخطوة التالية هي تنصيب الحزمة التطويرية البرمجية للأندرويد الـ Android SDK.</p><p>قم بتحميل النسخة المناسبة من هنا: <a
href="http://developer.android.com/sdk/index.html">http://developer.android.com/sdk/index.html</a></p><p>4- علينا الآن إضافة ملحقة الأندرويد Android Plug-in الى الاكليبس. للقيام بهذه الخطوة، علينا عمل التالي: <strong>(لأجهزة الماك وحتى لو كنت تملك ويندوز، اقرأ الشرح التالي)</strong>:</p><p>من قائمة Help اختر Install New Software (آخر اختيار)</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.36.15-AM.png" rel="lightbox[583]"><img
class="size-medium wp-image-586 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.36.15-AM-300x235.png" alt="" width="300" height="235" /></a></p><p>اضغط على Add وأضف المعلومات التالية ثم اضغط OK:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.40.59-AM.png" rel="lightbox[583]"><img
class="size-medium wp-image-587 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.40.59-AM-300x115.png" alt="" width="300" height="115" /></a></p><p>قم باختيار ما هو موجود في الصورة أدناه:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.42.27-AM.png" rel="lightbox[583]"><img
class="size-medium wp-image-588 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.42.27-AM-300x240.png" alt="" width="300" height="240" /></a></p><p><em><span
style="color: #0000ff">ربما تواجهك رسالة خطأ مفادها أن الموقع المزود هو https:// وستجد خيارا يتوجب عليك تحديده يجبر الاكليبس على الاتصال بالموقع حتى لو كان https:// وليس http://.</span></em></p><p>يفترض أن تكون الملحقة قد اضيفت الى الاكليبس. الخطوة التالية هي إضافة مكان الـ SDK الى الاكليبس. من قائمة البرنامج: Eclipse&gt;Preferences أدخل مكان ال SDK كما هو واضح في الصورة (اسم المكان يعتمد على المكان الذي حفظت به الSDK والموجود في الصورة هو المكان الذي استخدمته):</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.47.50-AM.png" rel="lightbox[583]"><img
class="size-medium wp-image-590 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.47.50-AM-300x79.png" alt="" width="300" height="79" /></a></p><p>قم بإضافة المسار Path الخاص بالـ SDK كما هو مبين في الصورة في الـ Terminal:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.06.19-PM.png" rel="lightbox[583]"><img
class="size-medium wp-image-595 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.06.19-PM-300x108.png" alt="" width="300" height="108" /></a></p><p>في النسخ السابقة من الإضافة، كانت تتوفر نسخة من المحاكي Emulator حال تحميل الإضافة. ولكن النسخة الجديدة من الإضافة تأتي ومعها Android SDK and AVD Manager والذي عن طريقه يتم تحميل المحاكي. ستجدونه تحت خيار Window كما هو في الصورة:</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.46.27-AM.png" rel="lightbox[583]"><img
class="size-full wp-image-589 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-11.46.27-AM.png" alt="" width="281" height="288" /></a><span
style="color: #0000ff"><em> </em></span></p><p><span
style="color: #0000ff"><em>في حال لم تجد الـ Android SDK Manager، توجه في الـ Terminal الى مجلد الSDK وتوجه الى /tools    ثم ادخل    ./android</em></span></p><p>اذهب الى خيار: Available Packages واضغط Refresh. اختر بعدها النسخة الجديدة من المحاكي وهي:</p><p>SDK Platform Android 2.0.1, API 6, revision 1</p><p>وقم أيضا باختيار:</p><p>Google APIs by Google Inc., Android API 6, revision 1</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.02.45-PM.png" rel="lightbox[583]"><img
class="size-medium wp-image-592 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.02.45-PM-300x174.png" alt="" width="300" height="174" /></a></p><p>بعد الانتهاء، في نفس النافذة، أضف جهازا افتراضيا (اضغط New وادخل اسم الجهاز واختر Android 2.0.1 في خيار الـ Target ثم اختر Create AVD ) وتأكد من وجود علامة &#8220;صح&#8221; خضراء بجانبه. سترى أن نافذة جديدة ظهرت تحاكي جهاز الأندرويد المتنقل. لاحظ أن سرعة إقلاع الأندرويد على المحاكي تشابه السرعة الموجودة في الأجهزة الحقيقية.</p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.02.30-PM.png" rel="lightbox[583]"><img
class="size-medium wp-image-591 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.02.30-PM-300x174.png" alt="" width="300" height="174" /></a></p><p
style="text-align: center"><a
href="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.03.06-PM.png" rel="lightbox[583]"><img
class="size-medium wp-image-593 aligncenter" src="http://ardroid.com/wp-content/uploads/2009/12/Screen-shot-2009-12-29-at-12.03.06-PM-300x210.png" alt="" width="300" height="210" /></a></p><p>في حال وصلت الى هذه المرحلة، تكون قد أتممت الدرس الأول. حاول التعرف على كيفية التعامل مع المحاكي وكيفية الدخول على التطبيقات الموجودة عليه.</p><p><strong>لأجهزة الويندوز (لم أجربها ولكن يفترض بها أن تكون كما شرحت في الأسفل):</strong></p><p>اتبع نفس التعليمات الموجودة في الأعلى مع مراعاة أن تحميل الإضافة Android Plug-in يتم من خيار: Help&gt;Software Updates&gt;Find and Install</p><p>ثم: Search for New Features to Install</p><p>ثم زر: New Remote Site وأضف معلومات الموقع المذكورة أعلاه.</p><p>اتبع الخطوات كالمذكورة أعلاه، ولإدخال مكان الـ SDK، ادخل على Window&gt;Preferences ثم Android. ولا تنس اختيار المربع الموجود في الأسفل: Automatically Sync Projects to current SDK.</p><p>ختاما، لإضافة ال Path، اضغط زر الفأرة الأيمن على أيقونة My Computer ثم Properties. اضغط على تبويبة Advanced.</p><p>اضغط على Environment Variables ثم ابحث عن المتغير PATH تحت System Variables. أضف مكان الـ SDK ولا تنس أن &#8220;;&#8221; تفصل بين أسماء الأماكن في هذا المتغير.</p><p>عد إلى الاكليبس وحاول إيجاد Android SDK and AVD Manager في أحد القوائم واتبع نفس التعليمات أعلاه.</p><p>&#8212;&#8212;&#8211;</p><p>في حال واجهتم أي مشكلة في تهيئة الاكليبس أوالإضافة أو المحاكي، لا تترددوا في طرح تساؤلاتكم هنا.</p><p>الدرس القادم، سيكون عن كيفية تشغيل بعض التطبيقات التي تأتي كأمثلة أو Samples مع الحزمة البرمجية SDK الخاصة بالأندرويد. كما سنتعرض بشكل سريع على دورة حياة تطبيق الأندرويد أو ما يعرف بـ Software Development Life Cycle SDLC. وختاما، سنتعرف على الملفات التي يتكون منها أي تطبيق أندرويدي.</p><p>بالتوفيق وتحياتي لكم!</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2009/12/30/android-programming-series-l1/feed/</wfw:commentRss> <slash:comments>107</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2009/12/android_development.jpg" /> </item> <item><title>الكشف عن ODROID, أول جهاز ألعاب مبني على أندرويد</title><link>http://ardroid.com/2009/12/14/odroid-gaming-handheld/</link> <comments>http://ardroid.com/2009/12/14/odroid-gaming-handheld/#comments</comments> <pubDate>Sun, 13 Dec 2009 22:19:25 +0000</pubDate> <dc:creator>أنس المعراوي</dc:creator> <category><![CDATA[ألعاب]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Full HD]]></category> <category><![CDATA[Games]]></category> <category><![CDATA[iPhone]]></category> <category><![CDATA[ODROID]]></category> <category><![CDATA[PSP]]></category> <category><![CDATA[Samsung]]></category> <category><![CDATA[sony]]></category> <category><![CDATA[Speed Forge 3D]]></category> <category><![CDATA[أندرويد]]></category> <category><![CDATA[سوني]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=414</guid> <description><![CDATA[يبدو أن منافساً لجهاز الألعاب المحمول الشهير PSP من شركة سوني قرر دخول سوق أجهزة الألعاب المحمولة وتقديم أول جهاز ألعاب يعتمد نظام أندرويد مفتوح المصدر. إذ كشفت الشركة المطورة للجهاز بأنها بدأت بتلقي طلبات لشراء الجهاز الجديد فيما يبدو أنها حالياً نسخة مخصصة للمطوّرين تم صنع 300 قطعة منها فقط وذات مواصفات عالية. يأتي&#8230; <a
href="http://ardroid.com/2009/12/14/odroid-gaming-handheld/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="538" height="343" src="http://ardroid.com/wp-content/uploads/2009/12/odroid.jpg" class="attachment-large" alt="ODROID" title="ODROID" /><p>يبدو أن منافساً لجهاز الألعاب المحمول الشهير <a
href="http://uk.playstation.com/psp/" target="_blank">PSP</a> من شركة <a
href="http://sony.com" target="_blank">سوني</a> قرر دخول سوق أجهزة الألعاب المحمولة وتقديم أول جهاز ألعاب يعتمد نظام أندرويد مفتوح المصدر. إذ كشفت <a
href="http://www.hardkernel.com/" target="_blank">الشركة المطورة للجهاز</a> بأنها بدأت بتلقي طلبات لشراء الجهاز الجديد فيما يبدو أنها حالياً نسخة مخصصة للمطوّرين تم صنع 300 قطعة منها فقط وذات مواصفات عالية. يأتي الجهاز مع بطاقة ذاكرة بسعة 2 غيغابايت من نوع MicroSD, وبطاقة بسعة 8 غيغابايت من نوع SDHC, ويعمل الجهاز على المعالج Samsung S5PC100 833MHz ARM’s Cortex-A8. والأمر الأكثر روعة بالنسبة لهذا الجهاز هو دعمه لتخريج الصورة بدقة 720p, وهذا يعني أنك تستطيع وصل الجهاز على الشاشات الكبيرة ذات الدقة العالية Full HD وتشغيل الألعاب والأفلام بأفضل شكل ممكن.</p><p
style="text-align: center;"><img
class="size-full wp-image-418 aligncenter" title="ODROID" src="http://ardroid.com/wp-content/uploads/2009/12/odroid.jpg" alt="ODROID" width="538" height="343" /></p><p>حتى الآن لم يزل عدد الألعاب ذات الجودة والدقة العاليتين محدود نوعاً ما بالنسبة لمنصة أندرويد لكن هذا سيتغير في القريب العاجل خاصة بعد توجه عدد من شركات الألعاب إلى بدء تطوير الألعاب الخاصة بأندرويد وفي مقدمة تلك الشركات الشركة الأشهر <a
href="http://www.gameloft.com/" target="_blank">Gameloft</a> التي تقدم أشهر الألعاب على أجهزة إكس بوكس وبلاي ستيشن وآيفون وغيرها, و<a
href="http://ardroid.com/2009/11/30/gameloft-تعلن-التزامها-بتطوير-ألعاب-فيديو-متف/" target="_blank">كنا قد تحدثنا عن عزم الشركة على تطوير الألعاب المتفوقة لمنصة أندرويد</a>.</p><p>الفيديو التالي فيه عرض للجهاز الموصول على شاشة كبيرة Full HD والمثال هو لعبة Speed Forge 3D.</p><p><a
href="http://ardroid.com/2009/12/14/odroid-gaming-handheld/"><em>Click here to view the embedded video.</em></a></p><p>و الفيديو التالي يعرض مثالاً لتشغيل فيلم عالي الدقة:</p><p><a
href="http://ardroid.com/2009/12/14/odroid-gaming-handheld/"><em>Click here to view the embedded video.</em></a></p><p>المصدر (<a
href="http://androidandme.com/2009/12/news/odroid-android-gaming-device-ships-soon/?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed:+androidandme+(Android+and+Me)&amp;utm_content=Google+Reader" target="_blank">موقع androidandme.com</a>)</p> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2009/12/14/odroid-gaming-handheld/feed/</wfw:commentRss> <slash:comments>7</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2009/12/ORDOID-Handheld.jpg" /> </item> <item><title>غوغل تعلن عن الفائزين في مسابقة مطوري أندرويد الثانية</title><link>http://ardroid.com/2009/12/02/%d8%ba%d9%88%d8%ba%d9%84-%d8%aa%d8%b9%d9%84%d9%86-%d8%b9%d9%86-%d8%a7%d9%84%d9%81%d8%a7%d8%a6%d8%b2%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d9%85%d8%b7%d9%88%d8%b1%d9%8a-%d8%a3/</link> <comments>http://ardroid.com/2009/12/02/%d8%ba%d9%88%d8%ba%d9%84-%d8%aa%d8%b9%d9%84%d9%86-%d8%b9%d9%86-%d8%a7%d9%84%d9%81%d8%a7%d8%a6%d8%b2%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d9%85%d8%b7%d9%88%d8%b1%d9%8a-%d8%a3/#comments</comments> <pubDate>Wed, 02 Dec 2009 00:07:55 +0000</pubDate> <dc:creator>أنس قطيش</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[برامج]]></category> <category><![CDATA[Android Market]]></category> <category><![CDATA[developers]]></category> <category><![CDATA[Downloads]]></category> <category><![CDATA[Games]]></category> <category><![CDATA[Video Games]]></category> <category><![CDATA[Virtual Console]]></category> <category><![CDATA[Word Games]]></category> <category><![CDATA[تطبيقات]]></category> <category><![CDATA[سوق أندرويد]]></category> <category><![CDATA[مسابقة]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=181</guid> <description><![CDATA[أعلنت غوغل يوم البارحة عن الفائزين في مسابقة مطوري أندرويد الثانية حيث تنافس المتسابقون ضمن عشر فئات تصل جائزتها الكبرى إلى مئة ألف دولار (يتوجب التنبيه أن ليس كل التطبيقات المذكورة متوافرة الآن في سوق أندرويد ولكن يمكن تحميلها مباشرة): الفائزون الثلاثة الأوائل عن جميع الفئات: SweetDreams SweetDreams هو أداة ثورية من شأنها أن تسمح&#8230; <a
href="http://ardroid.com/2009/12/02/%d8%ba%d9%88%d8%ba%d9%84-%d8%aa%d8%b9%d9%84%d9%86-%d8%b9%d9%86-%d8%a7%d9%84%d9%81%d8%a7%d8%a6%d8%b2%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d9%85%d8%b7%d9%88%d8%b1%d9%8a-%d8%a3/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="200" height="200" src="http://ardroid.com/wp-content/uploads/2009/12/adc2.png" class="attachment-large" alt="adc2" title="adc2" /><p>أعلنت غوغل يوم البارحة عن الفائزين في <a
href="http://code.google.com/android/adc/gallery_winners.html" target="_blank">مسابقة مطوري أندرويد الثانية</a> حيث تنافس المتسابقون ضمن عشر فئات تصل جائزتها الكبرى إلى مئة ألف دولار (يتوجب التنبيه أن ليس كل التطبيقات المذكورة متوافرة الآن في سوق أندرويد ولكن يمكن تحميلها مباشرة):<span
id="more-181"></span></p><p><span
style="color: #008080"><strong>الفائزون الثلاثة الأوائل عن جميع الفئات:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/sweetdreams.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SweetDreams</span></strong></p><p><span
dir="rtl">SweetDreams هو أداة   ثورية من شأنها أن تسمح لك بأن تذهب إلى النوم دون أن تقلق حول تغيير   إعدادات الهاتف من أجل تجنب المكالمات غير المرحب بها في وقت متأخر من   الليل.</span> <span
dir="rtl"> يمكنك  استخدام فترات الخمول تلك  لتوفير طاقة البطارية كذلك، وبطبيعة الحال   يمكنها ضبط إعدادات الشبكة اللاسلكية والبلوتوث ومستوى الرنين.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/whatthedoodle.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">What The Doodle!?</span></strong></p><p><span
dir="rtl">&#8216;WTD!؟</span> <span
dir="rtl">هي لعبة جماعية في  الوقت الحقيقي  على الانترنت حيث يحاول لاعب واحد رسم عبارة معينة بينما  يحاول الآخرون  تخمينها.</span> <span
dir="rtl">ومن  مزاياها اللعب ضمن  فرق ولوحة نتائج عالمية ورسومات شخصية للوجوه وتعرف  تلقائي على الصوت  وغيرها! </span><span
dir="rtl">الرسم  في الوقت الحقيقي؟!</span> <span
dir="rtl"> مبنية على الأداء  المتفوق، ستلاحظ  السحر من أول خط ترسمه!</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/wavesecure.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">WaveSecure</span></strong></p><p><span
dir="rtl">WaveSecure هو حل أمني   متكامل للأجهزة النقالة حيث يحمي الجهاز والبيانات والخصوصية.</span> <span
dir="rtl">1.</span> <span
dir="rtl">تتبع موقع  هاتفك وهوية الشخص الذي  يستخدمه 2.</span> <span
dir="rtl">أقفل  هاتفك عن بعد، مما  يجعله عديم القيمة للص 3.</span> <span
dir="rtl">إنشاء نسخة احتياطية  لجميع  البيانات الخاصة بك 4.</span> <span
dir="rtl">محو البيانات الخاصة بك عن  بعد 5.</span> <span
dir="rtl">استعادة  البيانات. </span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة التعليم والمراجع:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/plinkart.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Plink Art</span></strong></p><p><span
dir="rtl">Plink Art هو تطبيق  للتعرف على واكتشاف ومشاركة الأعمال الفنية.</span> <span
dir="rtl">التقط صورة للوحة،  وسيقوم Plink Art بمحاولة التعرف عليها.</span> <span
dir="rtl">يمكنك أيضا تصفح قاعدة  البيانات المليئة بالأعمال الفنية ومشاركة الاكتشافات مع الأصدقاء.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/wordpuzzle.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Word Puzzle</span></strong></p><p><span
dir="rtl">Word Puzzle مصممة  لتوفير وسيلة ممتعة لتعلم الكلمات الإنجليزية الأساسية للأطفال في مرحلة  الحضانة.</span> <span
dir="rtl">يمكن  للأطفال دراسة التهجئة واللفظ باستخدام بطاقات الذاكرة وحفظ إنجازاتهم مع  Word Puzzle.</span> <span
dir="rtl">يوفر البرنامج طرقاً بصرية وصوتية للتفاعل معه مثيرة  للاهتمام مما يساعد الاطفال على الاستمرار في التعلم.</span> <span
dir="rtl">دع الأطفال يمرحون مع  أندرويد.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/celeste.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Celeste</span></strong></p><p><span
dir="rtl">برنامج يعتمد على تقنية  الواقع المعزز رقمياً حيث يمكنك عرض مواقع ومسارات الشمس والقمر والكواكب  السماء باستخدام الكاميرا.</span> <span
dir="rtl">يمكنك التنقل عبر السماء واختيار الأجرام السماوية  لعرض معلومات مثيرة للاهتمام حول نظامنا الشمسي.</span> <span
dir="rtl">حدد أين على الأفق تشرق  الشمس وتغيب بالضبط.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الترفيه:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/worldofphoto.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">A World of Photo</span></strong></p><p><span
dir="rtl">تطبيق مستوحى من لعبة  &#8220;تدوير الزجاجة&#8221; التقليدية، A World of Photo (عالم من الصور) هي لعبة  جغرافية متعددة اللاعبين في جميع أنحاء العالم مع لمسة اجتماعية.</span> <span
dir="rtl">يقوم اللاعبون بتدوير  هواتفهم فيتلقون صورة من أي مكان في العالم يشير إليه رأس الجهاز.</span> <span
dir="rtl">للحصول على أفضل تجربة  لعب، يفضل السماح بتشغيل التطبيق في الخلفية.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/songdna.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SongDNA</span></strong></p><p><span
dir="rtl">بحاجة إلى أي معلومات  عن أغنية ما؟</span> <span
dir="rtl">تتمرن لحفلة كاراوكي كبيرة؟</span> <span
dir="rtl">هناك مسابقة حول  الموسيقى يوم الغد؟</span> <span
dir="rtl">تسمح لك أداة SongDNA بالبحث بسرعة عن المعلومات  التفصيلية حول الأغنية المفضلة لديك.</span> <span
dir="rtl">وتتضمن كلمات الأغاني،  ولمحة عن حياة الفنان وموقعه على الإنترنت، مرتبتها بين أفضل الأغاني،  والفيديو كليب.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/solo.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Solo</span></strong></p><p><span
dir="rtl">Solo هي غيتار رائع سهل  الاستخدام غني المزايا لهاتفك.</span> <span
dir="rtl">تطبيق لابد منه لجميع عشاق الغيتار!</span> <span
dir="rtl">وتشمل المزايا- مكتبة  ضخمة للأوتار )chords) تضم أكثر من  380 وتر ومخططاً، حفظ وتحميل مخططات  الأوتار، العزف جنباً إلى جنب مع الموسيقى في هاتفك، تراكب الموسيقى وكلمات  الأغاني من على شبكة الانترنت.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الألعاب التقليدية وألعاب الإثارة:</strong></span></p><table
border="0" cellspacing="3" cellpadding="3"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/speedforge3d.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Speed Forge 3D</span></strong></p><p><span
dir="rtl">Speed Forge: مركبات  حوامة ثقيلة، تستخدم عادة لأغراض التعدين يتم الآن استخدامها في سباقات  غير شرعية تنظم في مصانع مهجورة وأزقة مظلمة.</span> <span
dir="rtl">تخدم المتفجرات التي  كانت تستخدم في هذه الآلات لسحق الصخور الآن غرضاً مختلفاً&#8230;</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/graviturn.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Graviturn</span></strong></p><p><span
dir="rtl">فم بإمالة هاتفك لتحرك  الدوائر الحمراء لخارج الشاشة مع الحفاظ على الدوائر الخضراء.</span> <span
dir="rtl">مستويات لا حصر لها  تتراوح من السهل جداُ إلى شبه المستحيل تقريباً.</span> <span
dir="rtl">قارن أداءك مع لاعبين  آخرين بعد كل مستوى (أعلى الدرجات والإحصاءات متوفرة على شبكة الإنترنت).</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/motoxmayhem.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Moto X Mayhem</span></strong></p><p><span
dir="rtl">اقفز وانحن وسابق عبر  سبعة مستويات من الإثارة على دراجة نارية!</span> <span
dir="rtl">انكفئ إلى الأمام  والخلف على دراجة نارية أثناء تسلق التلال وحلق في الهواء من خلال استخدام  تكنولوجيا حساس ميلان الجهاز accelorometer.</span> <span
dir="rtl">لاحظ المشاهد الواقعية  حيث تنضغظ نوابض الدراجة عند اصطدامك بالأرض بعد القفزات!</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الألعاب العادية والأحاجي:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/whatthedoodle.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">What the Doodle!?</span></strong></p><p><span
dir="rtl">&#8216;WTD!؟</span> <span
dir="rtl">هي لعبة جماعية في  الوقت الحقيقي على الانترنت حيث يحاول لاعب واحد رسم عبارة معينة بينما  يحاول الآخرون تخمينها.</span> <span
dir="rtl">ومن مزاياها اللعب ضمن فرق ولوحة نتائج عالمية  ورسومات شخصية للوجوه وتعرف تلقائي على الصوت وغيرها!</span> <span
dir="rtl">الرسم في الوقت  الحقيقي؟!</span> <span
dir="rtl">مبنية على الأداء المتفوق، ستلاحظ السحر من أول خط  ترسمه!</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/totemo.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Totemo</span></strong></p><p><span
dir="rtl">أطلق الأرواح.</span> <span
dir="rtl">اكسر اللعنة.</span> <span
dir="rtl">اكشف السر المخفي بين  العوالم في لعبة لغز فريدة من نوعها.</span> <span
dir="rtl">اعصر دماغك وحاول أن  تسترخي أثناء محاولتك حل أكثر من 60 لغزاً يتعمد على المنطق.</span> <span
dir="rtl">العب في وضع البقاء على  قيد الحياة لتحدٍ إضافي واكتب اسمك في على قائمة أفضل اللاعبين على  الانترنت. http://hexage.net</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/mazeness.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Mazeness</span></strong></p><p><span
dir="rtl">الهدف من اللعبة بسيط  إلى حدٍّ ما &#8212; كل ما تحتاجه هو إحضار جميع الكرات (تصل إلى 4 في المرحلة!)</span> <span
dir="rtl">إلى أهدافها في الوقت  نفسه باستخدام الحواجز والمثبتات والنواقل.</span> <span
dir="rtl">قد تبدو بسيطة في  البداية، ولكنها ليست بهذه السهولة.</span> <span
dir="rtl">تتزايد الصعوبة باضطراد  من مستوى إلى آخر.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة أسلوب الحياة:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/sweetdreams.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SweetDreams</span></strong></p><p><span
dir="rtl">SweetDreams هي أداة  ثورية من شأنها أن تسمح لك بأن تذهب إلى النوم دون أن تقلق حول تغيير  إعدادات الهاتف من أجل تجنب المكالمات غير المرحب بها في وقت متأخر من  الليل.</span> <span
dir="rtl">يمكنك  استخدام فترات الخمول تلك لتوفير طاقة البطارية كذلك، وبطبيعة الحال يمكنها  ضبط إعدادات الشبكة اللاسلكية والبلوتوث ومستوى الرنين.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/spectrek.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SpecTrek</span></strong></p><p><span
dir="rtl">حسن لياقتك البدنية مع  لعبة اصطياد الأشباح الثورية التي تعتمد على تقنية الواقع المعزز  افتراضياً.</span> <span
dir="rtl">قم بالمشي أو الركض باستخدام نظام تحديد المواقع  وكاميرا الهاتف للعثور على الأشباح الافتراضية واصطيادها.</span> <span
dir="rtl">لك تجربة مغامرة جديدة  مع كل استخدام للعبة SpecTrekking.</span> <span
dir="rtl">اللعبة تقدم الإحصاءات  والجوائز والألقاب والسجلات، والأهم من كل ذلك كله الكثير من المرح!</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/foxyring.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">FoxyRing</span></strong></p><p><span
dir="rtl">FoxyRing يجعل هاتفك  أكثر ذكاء من خلال تحليل الضوضاء المحيطة بك وضبط مستوى الرنين.</span> <span
dir="rtl">أيضا : &#8211; ساعات النوم  لجعل الهاتف صامتاً خلال الليل. &#8211; تحديد الرنات اعتماداً على الموقع  الجغرافي، يمكنك ضبط الجهاز إلى الرجاج فقط في مكان عملك &#8211; أداة لضبط  الهاتف على الصامت لفترة موقوتة. &#8211; واجهةاستخدام رائعة.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الوسائط المتعددة:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/buzzdeck.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Buzz Deck</span></strong></p><p><span
dir="rtl">BuzzDeck هو طريقة سريعة  وسهلة للحصول على كل محتوى الويب الأكثر أهمية بالنسبة لك.</span> <span
dir="rtl">تصفح مواضيع الأخبار  المفضلة لديك يومياً.</span> <span
dir="rtl">واحصل على تحديثات من  تويتر وفيسبوك جنباً إلى جنب.</span> <span
dir="rtl">BuzzDeck يتعلم ما تحب،  ويوصي بأشياء رائعة جديدة.</span> <span
dir="rtl">بسيط وأنيق وسريع.</span> <span
dir="rtl">ملحوظة: لا  يوجد وضع أفقي بعد. http://mippin.com/buzzdeck</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/spbtv.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SPB TV</span></strong></p><p><span
dir="rtl">SPB TV هو حل عملي جداُ  لمشاهدة التلفاز عبر الآي بي (IP-TV)، مصمم خصيصاً للعمل  على الأجهزة  النقالة.</span> <span
dir="rtl">SPB TV يوفر للمستخدمين  الكثير من القنوات في لغات متعددة مع مزايا وإعدادات سهلة الاستخدام.</span> <span
dir="rtl">لا توجد رسوم  اشتراك شهرية!</span> <span
dir="rtl">يتطلب شبكة 3G موثوق  بها أو شبكة واي فاي لضمان تجربة مشاهدة جيدة.</span> <span
dir="rtl">يمكنك تجربة البرنامج  لمدة 60 يوماً قبل أن تقرر شراءه.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/fxcamera.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">FxCamera</span></strong></p><p><span
dir="rtl">FxCamera تمكنك من  التقاط صور مع تأثيرات متنوعة. هذا التطبيق يحتاج إلى بطاقة ذاكرة.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الإنتاجية والأدوات:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/wavesecure.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">WaveSecure</span></strong></p><p><span
dir="rtl">WaveSecure هو حل أمني  متكامل للأجهزة النقالة حيث يحمي الجهاز والبيانات والخصوصية.</span> <span
dir="rtl">1.</span> <span
dir="rtl">تتبع موقع  هاتفك وهوية الشخص الذي يستخدمه 2.</span> <span
dir="rtl">أقفل هاتفك عن بعد، مما  يجعله عديم القيمة للص 3.</span> <span
dir="rtl">إنشاء نسخة احتياطية  لجميع البيانات الخاصة بك 4.</span> <span
dir="rtl">محو البيانات الخاصة بك عن  بعد 5.</span><span
dir="rtl">استعادة  البيانات.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/hoccer.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Hoccer</span></strong></p><p><span
dir="rtl">Hoccer هو تطبيق مخصص  لتبادل البيانات بشكل لحظي ad-hoc. </span><span
dir="rtl">استخدم أصابعك &#8220;لرمي&#8221;  البيانات عبر الهواء حتى يتمكن المتلقي من &#8220;التقاطها&#8221;.</span> <span
dir="rtl">ليست هناك حاجة مسبقة   لتبادل معلومات الاتصال.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/tasker.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Tasker</span></strong></p><p><span
dir="rtl">Tasker يسمح لك بربط أي  مهمة (مجموعة التصرفات) إلى سياقات معينة (التطبيق، والوقت، واليوم،  والموقع، والأداة widget) حيث ينبغي أن تنفذ.</span> <span
dir="rtl">إرسال رسالة نصية قصيرة  الساعة 3:15 يوم الإثنين ، تحديد إعدادات خاصة بكل تطبيق، تعيين زر  الكاميرا ليفتح قائمة ما، تشغيل مشغل الموسيقى بشكل تلقائي عند إدخال  سماعات الأذنين، أخذ صور على فترات زمنية طويلة (timelapse)، تشفير فوري، و  القائمة لا تنتهي!</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة الشبكات الإجتماعية:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/cereal.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Ce:real &#8211; Everyday  trends</span></strong></p><p><span
dir="rtl">Ce:real، ماذا يحدث في  هذا العالم؟</span> <span
dir="rtl">هل تشعر بالفضول حول  العالم الحقيقي؟</span> <span
dir="rtl">ماذا عن القطب الشمالي  أو زاوية من أفريقيا؟</span> <span
dir="rtl">أيضا ، يمكن أن تكون  منطقتك.</span> <span
dir="rtl">يقدم  هذا البرنامج القصص المصورة الجديدة مع المواضيع الرائجة على تويتر بسرعة  البرق.</span> <span
dir="rtl">استمتع  بالملايين من مجريات الأحداث في العالم الحقيقي، ويمكنك المشاركة بها  كذلك.</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/socialmuse.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SocialMuse</span></strong></p><p><span
dir="rtl">تعرف على ما يستمع إليه  المستخدمون على الطرف الآخر من العالم!</span> <span
dir="rtl">اكتشف أشخاصاً لهم نفس  ذوفك الموسيقي، أو قم باستكشاف العالم من خلال الموسيقى فحسب.</span><span
dir="rtl"> </span><span
dir="rtl"> </span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/spotmessage.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">SpotMessage</span></strong></p><p><span
dir="rtl">SpotMessage هي أداة  للتواصل باستخدام نظام تحديد المواقع. أرسل رسالة تحدد موقعاً ما على خرائط  غوغل وسوف يتم إعلامك عندما يصل المتلقي يصل الى المكان المحدد.</span> <span
dir="rtl">SpotMsg له  العديد من الاستخدامات المختلفة؛ كمنبه لتذكيرك بمهمة ما في بقعة معينة أو  لإرسال رسالة مفاجئة لصديقك بمجرد وصوله إلى موقع معين.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن فئة السفر:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/tripjournal.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Trip Journal</span></strong></p><p><span
dir="rtl">Trip Journal هو أفضل  أداة لتتبع رحلتك متوفرة للهواتف الذكية العاملة بنظام أندرويد</span> <span
dir="rtl">أثر إعجاب  أصدقائك من خلال إرسال التحديثات لهم في الوقت الحقيقي من الأماكن التي  تزورها.</span><span
dir="rtl"> </span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/inap.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">iNapiNap: Arrival  Alert</span></strong></p><p><span
dir="rtl">هل سبق لك أن أردت أن  تغفو قليلاً أثناء رحلة القطار ، أو أن تغط عينك لدقائق معدودة أثناء ركوب  الباص إلى العمل؟</span> <span
dir="rtl">كنت إما تأمل في أن  تستيقظ في الوقت المناسب حتى لا تفوتك المحطة، أو ضبط منبه لإيقاظ بشكل  مبكر جداً&#8230;</span> <span
dir="rtl">باستخدام نظام تحديد  المواقع على هاتفك سيتمكن هذا البرنامج من تحديد مكانك وإيقاظك عند اقترابك  من وجهتك!</span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/carlocator.png" alt="" width="48" height="48" /></td><td><strong><span
dir="rtl">Car Locator</span></strong></p><p><span
dir="rtl">احفظ مكانك كلما ركنت  السيارة، وسيقوم البرنامج بإرشادك إليها في حال واجهتك صعوبة في ذلك. &#8212;  يشير باتجاه السيارة باستخدام نظام تحديد المواقع والبوصلة &#8212; وضع عرض  الرادار، وضع عرض الخريطة ، أو الإثنين معاً.</span> <span
dir="rtl"> تنتهي صلاحية النسخة  المجانية من البرنامج بعد 25 استخدام.</span></td></tr></tbody></table><p><span
style="color: #008080"><strong>الفائزون عن الفئة المنوعة:</strong></span></p><table
border="0"><tbody><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/rhythmguitar.png" alt="" width="48" height="48" /></td><td><strong><span><span
dir="rtl">Rhythm Guitar</span></span></strong></p><p><span><span
dir="rtl">يعزف الموسيقى مثل  غيتار ذي ستة أوتار حقيفي.</span></span> <span><span
dir="rtl">اعزف باستخدام جميع  تقنيات العزف التي تستخدمها في العزف على غيتار حقيقي، وغير الأغاني  لتتطابق مع مجال صوتك.</span></span> <span><span
dir="rtl">تطبيق عظيم لتأليف  الأغاني، والمساعدة على تعلم العزف وتعلم الأغاني الرائجة على الراديو، أو  حتى لتوصيله مع مكبرات صوت ودواسات.</span></span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/andrometer.png" alt="" width="48" height="48" /></td><td><strong><span><span
dir="rtl">Andrometer</span></span></strong></p><p><span><span
dir="rtl">Andrometer يسمح لك  لقياس المسافة التقريبية التي تفصلك عن أي جسم يمكنك رؤيته.</span></span> <span><span
dir="rtl">يستخدم نظام تحديد  المواقع وحساس ميلان الجهاز accelorometer وحساس استشعار جيومغنطيسي.</span></span><span> </span></td></tr><tr><td
valign="top"><img
src="http://code.google.com/android/adc/images/caltonhillgpscaddy.png" alt="" width="48" height="48" /></td><td><strong><span><span
dir="rtl">Calton Hill GPSCaddy</span></span></strong></p><p><span><span
dir="rtl">يسمح GPSCaddy للاعبي  الغولف برسم خريطة أي ملعب للجولف بسرعة وسهولة إما باستخدام نظام تحديد  المواقع أوفي المنزل باستخدام صور الأقمار الصناعية.</span></span> <span><span
dir="rtl">ثم عند اللعب فإنه  يستخدم نظام تحديد المواقع ليخبرهم عن تفاصيل المضمار (البعد عن  الحفرة،العوائق الرملية، الخ&#8230;)</span></span></td></tr></tbody></table><div
class="zemanta-pixie" style="margin-top: 10px;height: 15px"><img
class="zemanta-pixie-img" style="border: medium none;float: right" src="http://img.zemanta.com/pixy.gif?x-id=eeb511e9-4688-444e-8b29-11e6c1b5a0ec" alt="" /><span
class="zem-script more-related pretty-attribution"></span></div> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2009/12/02/%d8%ba%d9%88%d8%ba%d9%84-%d8%aa%d8%b9%d9%84%d9%86-%d8%b9%d9%86-%d8%a7%d9%84%d9%81%d8%a7%d8%a6%d8%b2%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d8%b3%d8%a7%d8%a8%d9%82%d8%a9-%d9%85%d8%b7%d9%88%d8%b1%d9%8a-%d8%a3/feed/</wfw:commentRss> <slash:comments>9</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2009/12/adc2.png" /> </item> <item><title>Gameloft تعلن التزامها بتطوير ألعاب فيديو متفوقة لمنصة أندرويد</title><link>http://ardroid.com/2009/11/30/gameloft-%d8%aa%d8%b9%d9%84%d9%86-%d8%a7%d9%84%d8%aa%d8%b2%d8%a7%d9%85%d9%87%d8%a7-%d8%a8%d8%aa%d8%b7%d9%88%d9%8a%d8%b1-%d8%a3%d9%84%d8%b9%d8%a7%d8%a8-%d9%81%d9%8a%d8%af%d9%8a%d9%88-%d9%85%d8%aa%d9%81/</link> <comments>http://ardroid.com/2009/11/30/gameloft-%d8%aa%d8%b9%d9%84%d9%86-%d8%a7%d9%84%d8%aa%d8%b2%d8%a7%d9%85%d9%87%d8%a7-%d8%a8%d8%aa%d8%b7%d9%88%d9%8a%d8%b1-%d8%a3%d9%84%d8%b9%d8%a7%d8%a8-%d9%81%d9%8a%d8%af%d9%8a%d9%88-%d9%85%d8%aa%d9%81/#comments</comments> <pubDate>Mon, 30 Nov 2009 19:30:22 +0000</pubDate> <dc:creator>أنس قطيش</dc:creator> <category><![CDATA[أخبار أندرويد]]></category> <category><![CDATA[ألعاب]]></category> <category><![CDATA[Android]]></category> <category><![CDATA[Gameloft]]></category> <category><![CDATA[Games]]></category> <category><![CDATA[Platform]]></category> <category><![CDATA[Prince of Persia]]></category> <category><![CDATA[Video game]]></category> <category><![CDATA[برامج]]></category> <category><![CDATA[مطورون]]></category><guid
isPermaLink="false">http://ardroid.com/?p=167</guid> <description><![CDATA[أعلن الأسبوع الماضي أحد المسؤولين في شركة Gameloft عن توجه الشركة بعيداً عن تطوير ألعاب لمنصة أندرويد بسبب ضعف الأرباح ومعدلات تحميل الألعاب مما أثار شكوكاً كبيرة حول التزام مطوري البرامج بشكل عام بمنصة أندرويد. ولكن الشركة عادت ونفت الخبر في بيان صحفي أعلنت فيه التزامها بتطوير ألعاب ثلاثية الأبعاد وعالية الدقة تستفيد من التطورات&#8230; <a
href="http://ardroid.com/2009/11/30/gameloft-%d8%aa%d8%b9%d9%84%d9%86-%d8%a7%d9%84%d8%aa%d8%b2%d8%a7%d9%85%d9%87%d8%a7-%d8%a8%d8%aa%d8%b7%d9%88%d9%8a%d8%b1-%d8%a3%d9%84%d8%b9%d8%a7%d8%a8-%d9%81%d9%8a%d8%af%d9%8a%d9%88-%d9%85%d8%aa%d9%81/">تابع القراءة &#187;</a>]]></description> <content:encoded><![CDATA[<img
width="564" height="600" src="http://ardroid.com/wp-content/uploads/2009/11/gameloft_games.jpg" class="attachment-large" alt="Gameloft Games" title="Gameloft Games" /><p>أعلن الأسبوع الماضي أحد المسؤولين في شركة <a
href="http://www.gameloft.com/" target="_blank">Gameloft</a> عن توجه الشركة بعيداً عن تطوير ألعاب لمنصة أندرويد بسبب ضعف الأرباح ومعدلات تحميل الألعاب مما أثار شكوكاً كبيرة حول التزام مطوري البرامج بشكل عام بمنصة أندرويد. ولكن الشركة عادت ونفت الخبر في <a
href="http://www.gameloft.com/download-games/news/gameloft-supports-the-2nd-generation-of-android-phones/" target="_blank">بيان صحفي</a> أعلنت فيه التزامها بتطوير ألعاب ثلاثية الأبعاد وعالية الدقة تستفيد من التطورات الكبيرة في أحدث الأجهزة العاملة بنظام أندرويد كما أكدت استمرارها بتقديم ألعاب جديدة للهواتف الأقدم.<span
id="more-167"></span></p><p>حيث قال غونزاغي دي فايويس نائب رئيس الشركة: &#8220;وصول الجيل الجديد من الهواتف سيسمح بتطوير ألعاب عالية التحديد تستغل القدرات التكنولوجية وسرعات التنفيذ العالية التي تقدمها هواتف أندرويد الجديدة بأفضل شكل ممكن. مما سيمكن المستخدمين من التمتع بتجربة ألعاب فيديو متفوقة&#8221;.</p><p><img
class="alignnone size-full wp-image-172" src="http://ardroid.com/wp-content/uploads/2009/11/gameloft_games.jpg" alt="Gameloft Games" width="429" height="456" /></p><p>ويذكر أن Gameloft شركة رائدة على مستوى العالم في تطوير ألعاب الفيديو على مدى أكثر من عشر سنوات صنعت فيها ألعاباً تعمل على مختلف الأجهزة ونظم التشغيل مثل إكس بوكس والبلاي ستيشن والآيفون والأيبود ويتوقع أن تستخدم برامجها على أكثر من مليار جهاز بحلول العام 2012.</p><p>وقد قدمت Gameloft  العديد من الألعاب التي حظيت بشعبية فائقة مثل: Assasin’s Creed, Prince of Persia, Splinter Cell و GT Racing.</p><p><img
class="alignnone size-full wp-image-170" src="http://ardroid.com/wp-content/uploads/2009/11/3100080350_13499f7fa2.jpg" alt="Gameloft Games 2" width="221" height="337" /><img
class="alignnone size-full wp-image-171" src="http://ardroid.com/wp-content/uploads/2009/11/20080718_5edc5e673f67a94b30b8ocgF2NmQEzon.jpg" alt="Assasin's Creed" width="235" height="336" /></p><div
class="zemanta-pixie" style="margin-top: 10px;height: 15px"><img
class="zemanta-pixie-img" style="border: medium none;float: right" src="http://img.zemanta.com/pixy.gif?x-id=5b61193e-2e40-41b8-8b90-71971aefe606" alt="" /></div> ]]></content:encoded> <wfw:commentRss>http://ardroid.com/2009/11/30/gameloft-%d8%aa%d8%b9%d9%84%d9%86-%d8%a7%d9%84%d8%aa%d8%b2%d8%a7%d9%85%d9%87%d8%a7-%d8%a8%d8%aa%d8%b7%d9%88%d9%8a%d8%b1-%d8%a3%d9%84%d8%b9%d8%a7%d8%a8-%d9%81%d9%8a%d8%af%d9%8a%d9%88-%d9%85%d8%aa%d9%81/feed/</wfw:commentRss> <slash:comments>5</slash:comments> <enclosure
id="thumbnail" url="http://ardroid.com/wp-content/uploads/2009/11/gameloft-android-logo.jpg" /> </item> </channel> </rss>
<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced (User agent is rejected)

Served from: ardroid.com @ 2012-02-12 06:28:18 -->
