السلام عليكم و رحمة الله تعالى و بركاته.
★★★ تقديم :
نظرا لكثرة الأسئلة - من طرف بعض الإخوة مطوري تطبيقات الأندرويد - حول كود سورس تطبيق funny jokes، ارتأيت أن أقوم بتبسيطه و تسهيل التعامل معه ، من حيث تصميمه و برمجته و تسهيل التحكم في إعداداته.
و سيتم الشرح بالصوت والصورة وذلك على شكل أشرطة فيديو في قناتي على اليوتوب :
https://www.youtube.com/channel/UC9Jj_viBSiyIJW15sVJTQOQ
أكواد السورس
اكليبس + أندرويد استوديو + documentation
اكليبس + أندرويد استوديو + documentation
★★★ سير العمل :
★إعادة برمجة الكود سورس بطريقة جديدة وبسيطة لكي يسهل التعديل عليه .
★استبدال قاعدة البيانات SQLiteDatabase ب strings .
★ إضافة شبكات إعلانية جديدة إلى الكود سورس مثل Startapp و Applovin بالإظافة إلى Admob .★التحكم في إعدادات الإعلانات من ملف خاص بدون الدخول إلى ملفات الجافا .
★إضافة صفحة جديدة في أول التطبيق يمكن من خلالها التوجه الى play store من أجل تقييم التطبيق من طرف المستخدم .
★إضافة زر يعرض جميع تطبيقات المطور .
★إضافة زر يمكن من خلاله التواصل مع المطور صاحب التطبيق .
بسم الله نبدأ
★★★التصميم
سنحتاج 8 صفحات لنبدأ العمل .★★ الصفحة 1:
about.xml
هذه الصفحة ستحتوي على معلومات عن التطبيق بالإضافة إلى ثلاثة أزرار.
★ الأول يعرض صفحة التطبيق على جوجل بلاي من أجل تقييمه.
★ الثاني يقوم بعرض صفحة المطور على google play التي تحتوي على تطبيقاته الأخرى .
★ الزر الثالث وظيفته هي الاتصال بالمطور.
★★الصفحة 2:
adapter.xml
هذه الصفحة تقوم بإعداد شكل ظهور قائمة النكت عند عرضها أو عند البحث عنها.
★★ الصفحة 3:
dashboard.xml
هي لوحة التحكم التي تظهر في البداية و تحتوي على نكتة اليوم بالإضافة إلى ثلاثة ازرار:
★الزر الأول يعرض النقط .
★ الزر الثاني يعرض المساعدة .
★ الزر الثالث يعرض صفحة حول التطبيق.
★★ الصفحة 4:
help.xml
هذه الصفحة خاصة بالمساعدة و تحتوي على معلومات حول التعامل مع التطبيق.
★★ الصفحة 5:
quote_preview.xml
هذه الصفحة تعرض النكة منفصلة أثناء البحث عنها أو عرضها مباشرة.
★★ الصفحة 6:
quotes.xml
هذه الصفحة تعرض النكت مجتمعة.
★★ الصفحة 7 :
search.xml
هذه الصفحة تمكن من البحث عن نكتة معينة في التطبيق.
★★ الصفحة 8 :
splash_screen.xml
هذه الصفحة تظهر في البداية عند تشغيل التطبيق و هي تحتوي على صورة تظهر في كامل الشاشة و يمكن للمطور تفعيلها أوعدم إظهارها.
★ملاحظة :
بالنسبة لأكواد xml سنأخذها من كود سورس تطبيق Funny Jokes القديم.
★★★ البرمجة :
من أجل برمجة التطبيق سنحتاج إلى أكواد جافا التالية :★★ملاحظة :
بالنسبة لأكواد جافا قمت بالبحث عنها في موقع stackoverflow.com و قمت بتنظيمها لتصبح جاهزة للاستخدام .
★ كود حذف الشريط العلوي من الشاشة:
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); |
★ كود إظهار عنصر ما:
X.setVisibility(View.VISIBLE); |
★ كود فتح تطبيق في Play Store من أجل تقييمه :
Intent rateIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=com.X.X")); startActivity(rateIntent); |
★ كود إرسال رسالة إلى بريد إلكتروني :
Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts( "mailto","email", null));emailIntent.putExtra(Intent.EXTRA_EMAIL, "email");emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject"); emailIntent.putExtra(Intent.EXTRA_TEXT, "text"); startActivity(Intent.createChooser(emailIntent, "chooser_title")); finish(); |
★ كود القيام بأمر ما عند الضغط على زر الرجوع :
public void onBackPressed(){} |
★ كود الحصول على رقم اليوم الحالي في الأسبوع :
Calendar calendar = Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_WEEK); |
★ كود تعريف قائمة :
String[] X = getResources().getStringArray(R.array.X); |
★ كود استقبال متغير عددي من Activity :
int X=getIntent().getIntExtra("Y", 0); |
★ كود استقبال متغير حرفي من activity معينة :
Bundle extras = getIntent().getExtras(); String item = extras.getString("item"); |
★ كود مشاركة نص ما :
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND); sharingIntent.setType("text/plain"); sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,""); sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, ""); startActivity(Intent.createChooser(sharingIntent, "Share via:")); |
★ كود إظهار نافذة منبثقة :
new AlertDialog.Builder(X.this) .setTitle("") .setMessage("") .setPositiveButton("", new DialogInterface.OnClickListener(){ @Override public void onClick(DialogInterface dialog, int which) { }}).setCancelable(false) .create() .show(); |
★ كود ملء Listview بقائمة :
final ArrayList<String> content = new ArrayList<String>(); for (int i = 0; i < quotes.length; ++i) { content.add(quotes[i]);} final ArrayAdapter adapter = new ArrayAdapter(this,R.layout.adapter, R.id.content, content); listview.setAdapter(adapter); |
★ كود القيام بأمر ما ، عند الضغط على Listview :
listview.setOnItemClickListener(new AdapterView.OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> parent, final View view, int position, long id) { }}); |
★ كود إرسال عنصر ما ، مع موضعه ، من Listview إلى Activity :
String item = (String)parent.getItemAtPosition(position); Intent go = new Intent(X, Y); go.putExtra("item", item); go.putExtra("position", position); startActivity(go); |
★ كود إعداد عداد عكسي CountDownTimer:
new CountDownTimer(X, Y) { public void onTick(long millisUntilFinished) {} public void onFinish() {Z}} .start(); |
★ كود التحقق ما إذا كانت ListView فارغة من أي عنصر:
if (adapter.getCount() == 0){ //Do Something } |
★ كود تفعيل الـ multidex:
android:name="android.support.multidex.MultiDexApplication" multiDexEnabled true compile 'com.android.support:multidex:1.0.1' |
★ كود جعل حواف زر ما مستديرة:
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <shape android:shape="rectangle"> <corners android:radius="15dip" /> <stroke android:width="1dip" android:color="#daa617" /> <gradient android:angle="-90" android:endColor="#ffbb00" android:startColor="#efaf00" /> </shape> </item> <item android:state_focused="true"> <shape android:shape="rectangle"> <corners android:radius="15dip" /> <stroke android:width="1dip" android:color="#daa617" /> <solid android:color="#daa617" /> </shape> </item> <item> <shape android:shape="rectangle"> <corners android:radius="15dip" /> <stroke android:width="1dip" android:color="#daa617" /> <gradient android:angle="-90" android:endColor="#ffbb00" android:startColor="#efaf00" /> </shape> </item> </selector> |
★ كود جعل حواف مربع نص ما مستديرة:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" android:padding="10dp"> <solid android:color="#FFFFFF"/> <corners android:bottomRightRadius="15dp" android:bottomLeftRadius="15dp" android:topLeftRadius="15dp" android:topRightRadius="15dp"/> </shape> |
★ كود إضافة رقم و اسم إصدار التطبيق:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.funny.jokes" android:versionCode="1" android:versionName="1.0"> |
★ كود إعداد الـ SDK:
<uses-sdk android:minSdkVersion="11" android:targetSdkVersion="19"/> |
★ كود إعداد إعلانات Admob:
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden |orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" /> |
================================================
والسلام عليكم ورحمة الله
ليست هناك تعليقات:
إرسال تعليق