facebook group : Qpython for All

الثلاثاء، 26 مايو 2015

الدرس التاسع view

السلام عليكم ورحمة الله وبركاته

مرحبا بكم فى الدرس التاسع ومع شرح view 


view(uri,type=None,extras=None)
نستخدم مع view .... 

 uri و type و extras لمزيد من المعرفة ادخل هنا

وسوف نفصل فيهم فى دروس قادمة ان شاء الله


اولا كود اظهار الاسماء


 

وهذه دالة تقوم بفتح واظهار الاسماء 




طريقة البحث فى خرائط جوجل







  



 

وفى هذا الكود سنبحث عن موقع مصر على الخريطة 






طريقة اظهار صورة


 

ونلاحظ ان 
uri  هو

 "file:///sdcard/foo.jpg"
اما ال type 

 "image/*"








 طريقة عرض فيديو 







حيث
file:///sdcard/apk.mp4

هو مسار الفيديو



طريقة عرض ملف html


 

حيث نقوم بوضع مسار ملف html كما بالكود
 droid.viewHtml("file:///sdcard/out.html")





طريقة عرض ملف نصى



 

ارجو ان يكون الدرس اعجبكم


لا تنسونا بصالح دعائكم

والسلام عليكم ورحمة الله

الأحد، 24 مايو 2015

الدرس الثامن : TextView


الان سنتعلم إظهار كتابة على الشاشة 

نكتب هذا الكود ونشغله 


الآن نأتي لتحليل الكود :
نحن وضعنا كود الواجهة في متغير xml واستخدمنا علامة الإقتباس الثلاثية لإننا نحتاج الى عدة سطور
xml="""

الان نفتح الـ <tag> الرئيسي
<LinearLayout

بعد كتابة الـ <tag> الرئيسي نقوم بكتابة خواصه ، بعض الخواص رئيسية لابد من كتابتها وإلا فلن يعمل الكود ، وأحد الخواص الرئيسية هي xmlns وتكون كتابة الخواص كالآتي :
xmlns:android="http://schemas.android.com/apk/res/android"

لون الخلفية 
android:background="#ffffff"

نلاحظ ان طريقة كتابة الخواص يكون بالطريقة التالية , كتابة الكلمة android وبعدها كتابة نقطتين شارحة : وبعدها كتالة الخاصية المطلوبة ونحن هنا استخمنا خاصية خلفية الشاشة وهي background وبعدها نكتب = وبعدها نكتب قيمة الخاصية وهنا كتبنا الشفرة اللونية للون الأبيض "ffffff#" شفرات الألوان سنشرحها في درس مستقل انشاء الله 


الان نحدد الكتابة في وسط الشاشة من خلال الخاصية gravity
android:gravity="center"

نحن الان اكتفينا من هذه الخواص وسنغلق الـ <tag> الرئيسي وهذا الإغلاق هو إغلاق أولي فقط و الإغلاق النهائي يكون في نهاية الكود
>


وبعد إن اغلقنا  الـ <tag> الرئيسي سنقوم بكتابة عناصر الواجهة 
عناصر الواجهة هي أيضا تكتب بنفس طريقة الـ <tag> الرئيسي حيث نقوم بفتح <tag> وبعدها نكتب خواصه وبعدها نغلق الـ <tag> ولكن الفرق هو ان العناصر لا تحتوي على خواص ثابتة لا بد من كتابتها و يضا تختلف في الإغلاق
ففي الـ <tag> الرئيسي عند إغلاقه نكتب < فقط لكن في إغلاق الخواص نكتب </ للإغلاق 

نحن في هذا المثال استخدمنا عنصر النصوص وهو TextView
<TextView

لون النص
android:textColor="#ffa500"

توسيط النص
android:gravity="center"

النص المطلوب
android:text="Iam Developer"

حجم النص
android:textSize="20dp"

إغلاق الـ <tag> الخاص بعنصر النص TextView
 />

الآن نقوم بإغلاق الـ <tag> الرئيسي 
</LinearLayout>

وبدها نضع علامة الإقتباس الثلاثية
"""

الآن انتهينا من كتابة كود الواجهة 
وبقي علينا استخدام الكود من خلال البايثون

import android
droid=android.Android()

الواجهة
droid.fullShow(xml)


تم بحمد الله

الدرس السابع : مقدمة عن الواجهة الرسومية


في نظام الأندرويد تستخدم واجهتان رئيسيتان و هما kivy , Layout
نحن الآن سنبدأ بتعلم Layout انشاء الله 
وهي تستخدم لغة xml و هي لغة تستخدم للإتصال بين عدة لغات وهي تشبه للغة html  في طريقة كتابتها فهي تستخدم   </tag> ... <tag> وهذه الواجهة ليست في البايثون وليست تابعة للبايثون ولكن البايثون تستخدمها كواجهة لها والجافا أيضا تستخدمها كواجهة لها


بعض الصور المصممة في الواجهة الرسومية Layout




السبت، 23 مايو 2015

الدرس السادس (معلومات البطارية)

السلام عليكم ورحمة الله وبركاته

اهلا ومرحبا بكم    .....................


اليوم ان شاء الله نشرح اسكريبت لمعرفة معلومات البطارية

الكود


 


 فى هذا الاسكريبت تم استدعاء مكتبة اندرويد و مكتبة الوقت 



import android ,time
droid=android.Android()


ثم نطلب من الاسكريبت ان يتحرى معلومات البطارية من خلال 

droid.batteryStartMonitoring()


ثم ننتظر حتى يتم قراءة المعلومات عن المعلومات

 time.sleep(2)


ثم نقوم بقراءة معلومات البطارية عن طريق

e=droid.readBatteryData().result


الان سنقوم بعرض البيانات فى قائمة  كما تعلمنا الدرس الماضى 

نبدا بعمل القائمة الخالية ثم اضافة البيانات لها من خلال for 

list=[]
for x in e.keys():
    q=x+"="+ str(e[x])
    list.append(q)

ثم نقوم بعرض القائمة كما تعلمنا بالدرس الخامس 

droid.dialogCreateAlert("معلومات البطارية")
droid.dialogSetItems(list)
droid.dialogShow()
re=droid.dialogGetResponse()
ans=re.result["item"]
print(list[ans])





طبعا ممكن الحصول على كل معلومة من معلومات البطارية بطريقة منفصلة انظر التوثيق بالدرس الاول

الان نشرح معنى status اذا كانت تساوي 1 فهذا يعنى ان حالتها غير معروفة

اما اذا كانت تساوى 2 فانها متصلة بالشاحن

اذا كانت تساوى 3 فهذا يعنى انها غير متصلة بالشاحن

لو كانت تساوى 4 فانها تكون غير مشحونة

اما اذا كانت تساوى 5 فان البطارية ممتلئة

اما صحة البطارية health 

اذا كانت تساوى 1 ("غير معروفة")

اذا كانت تساوى 2 ("بحالة جيدة")

اذا كانت تساوى 3 ("تسخن بشكل زائد عن المعتاد")

اذا كانت تسلوى 4 ("غير صالحة")

اذا كانت تساوى 5 (" الفولتات بها مرتفعة")

اذا كانت تساوى 6 (" فشل فى تحديد معلومات صحة البطارية")

واما level فنعرف عن طريقها مستوي شحن البطارية

هذه اهم معلومات عن البطارية

اتمنى يكون الدرس مفيد واعجبكم 

والى اللقاء فى الدرس القادم ان شاء الله 

 
 

الأربعاء، 20 مايو 2015

الدرس الخامس القوائم فى dialog

السلام عليم ورحمة الله وبركاته    

اهلا بكم ومع الدرس الخامس وهو شرح طريقة عمل قوائم اختيارية من خلال dialog

هناك ثلاث طرق لانشاء القوائم من خلال dialog

الاولى طريقة ضبط قائمة اختيارية  احادية الاختيار


 

 تم استدعاء المكتبة كما تعلمنا
import android
droid=android.Android()

.ثم نقوم بتحديد قائمة الاختيارات
list= ["python","java","c++"]
بعد ذلك نقوم بوضع عنوان للقائمة من خلال 

droid.dialogCreateAlert

ثم نقوم بعمل القائمة 

droid.dialogSetSingleChoiceItems(list,0)

نلاحظ اننا وضعنا القائمه التى تم عملها  فى الخطوة الثانية ثم فاصلة و 0 وهذا الصفر يحدد رقم الاختيار المنشط

بعد ذلك نقوم بعمل الازرار  فى هذا المثال تم عمل زر واحد فقط هو positive 
 
droid.dialogSetPositiveButtonText("ok")

لاظهار القائمة نستخدم 
 droid.dialogShow()


 ثم من اجل الاستجابة للاختيار والتعرف عليها

droid.dialogGetResponse()

الان يحدد الاسكريبت الاختيار من خلال 

 re=droid.dialogGetSelectedItems().result

بعد ذلك باقى الاسكريبت ما فيها اى مشكلة لكن 

ملحوظة: 

droid.ttsSpeak
تقوم بتحويل النص الى كلام 


فى النهاية يظهر الاسكريبت كالاتى
 




الطريقة الثانية هو عمل قائمة متعددة الاختيارات

وهى لتحديد اكثر من اختيار 


 

ونلاحظ ان هذا الاسكريبت يشبه الاسكريبت السابق ولكن تختلف فى

 droid.dialogSetMultiChoiceItems(list)
وهى لعمل قائمة متعددة الاختيلرات

واذا اردنا تحديد اختيارات فى القائمة نحددها كلاتى 
droid.dialogSetMultiChoiceItems(list,[0,1])
ونلاحظ اننا قمنا بتحديد الاختيار الاول و الثالث من القائمة 



الطريقة الثالثة لضبط قائمة اختياريةبدون تحديد اختيارات



 


وفى هذا الاسكريبت تم تحديد القائمة ثم وضع عنوان لها من خلال 

 droid.dialogCreateAlert
لضبط هذه القائمة نستخدم 

droid.dialogSetItems(list)
انه هنا لايمكن تحديد اختيار ...... وضعنا فقط القائمة




اتمنى ان يكون الدرس اعجبكم 

لا تنسونا بصالح دعائكم

والى اللقاء فى الدرس القادم ان شاء الله

 والسلام عايكم ورحمة الله وبركاته
السلام عليكم ورحمة الله و بركاتة

اهلا بكم في الدرس الرابع من بايثون اندرويد

كيفية ارسال ايميل بالبايثون



تم استدعاء مكتبة اندرويد كما تعلمنا الدرس السابق
و لارسال الايميل استخدمنا
 droid.sendEmail
 ونلاحظ الاتى تفاصيلها على الترتيب


المرسل اليه ثم موضوع الرسالة ثم محتوى الرسالة ثم ملف مرفق

الثلاثاء، 19 مايو 2015

الدرس الثالث dialog

السلام عليكم ورحمة الله .......... مرحبا بكم مره اخري في الدرس الثالث  
   
وشرح   dialog

هنا نبدا نتعرف علي شكل من اشكال الواجهة الرسوميه  gui


 طريقة ادخال قيمة




ونلاحظ اننا استخدمنا  العنوان اولا ثم الرسالة ثانيا 
droid.dialogGetInput("title","message").result

طريقة عمل رسالة تنبيه





لوضع العنوان والرسالة نستخدم  droid.dialogCreateAlert 
للازرار هناك ثلاث انواع من الازرار positive و negative و neutral 
ولاظهار رسالة التنبية نستخدم droid.dialogShow()
وللحصول على الاستجابة عند الضغط عاى الازرار
droid.dialogGetResponse().result["which"]
نلاحظ اننا وضعنا ["which"]  بعد result  
لانه اذا لم تستخدمها يكون النتيجة {"which":"positive"} 
حيث "positive"  هى الاستجابة في حين اختيارك زر  positive 

طريقة ادخال كلمة سر

 

 اتمنى ان يكون هذا الدرس اعجبكم ........... ﻻتنسونا بصالح دعائكم
ونكمل باقى dialog فى الدرس القادم ان شاء الله
والسلام عليكم ورحمة الله