ساخت splash Screen


رضا نقی لو 1394/12/20

به نام خدا،در ادامه اموزش های مربوط به برنامه نویسی اندروید در محیط زامارین میخواهیم با ساخت صفحه اسپلش آشنا بشیم.در این آموزش علاوه بر ساخت یک برنامه نمایش Splash با نحوه ساخت و استفاده از Style و همچنین ساخت یک کلاس اکتیویتی به صورت کامل آشنا خواهیم شد.در محیط زامارین برعکس محیط های بومی توسعه اندروید یعنی ایکلیپس و اندروید استودیو،برای نمایش تصویر اسپلش از Style استفاده خواهیم کرد.برای شروع کار در داخل پروژه بر روی پوشه Values کلیک راست کرده و گزینه Add New File را انتخاب کرده و وارد یک صفحه جدید به نام New File میشویم.در این صفحه تمامی ابزار های مورد نیاز ما از کلاس ها،فراگمنت ها،ریسویر ها و فایل های xml را می توانیم ببینیم.بر روی گزینه xml کلیک کرده و فایل Empty XML File را انتخاب میکنم.سپس در پایین صفحه در داخل کادر name نام مدنظر برای فایل رو وارد میکنم.که در اینجا نام فایل xml ما Style میباشد.اکنون بر روی گزینهnew کلیک کنید،مشاهده می کنید یک فایل جدید به نام styleساخته شده است. فایل را اجرا کرده و کدهای زیر رو بهش اضافه می کنیم.(کدهای style)

 <?xml version="1.0" encoding="UTF-8" ?>
<resources>
<style name="Theme.SplashActivity"  parent="android:Theme.Holo.Light.NoActionBar">
<item name="android:windowBackground">@drawable/ic_splash</item>
</style>
</resources>

عناصر تشکیل دهنده استایل ما عبارت اند از:Name که نام استایل رو دربرمیگیره،Parent که تم مدنظر ما برای نمایش اکتیویتی است ودستور آخری windowBackground در برگیرنده تصویر اسپلش اسکرین ماست.در ادامه باید برای اسپلش یک کلاس جدید ایجاد کنیم تا در هنگام شروع برنامه ابتدا این کلاس شروع به کار کند سپس بعد از یک زمان مشخص به کلاس اصلی ما یعنی MainActivity برود.نحوه ساخت کلاس جدید هم به صورت ساخت فایل xml بوده و درضمن در ویدئو بالا به صورت کامل نمایش داده شده است.(کدهای کامل کلاس اسپلش)

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using System.Threading;

namespace Splash_appinapps
{
[Activity (Label = "SplashActivity", MainLauncher = true, NoHistory=true,  Theme="@style/Theme.SplashActivity")] 
public class SplashActivity : Activity
{
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);

// Create your application here
// Wait for 2 seconds
Thread.Sleep(2000); 

//Moving to next activity
StartActivity(typeof(MainActivity));
}
}
}

در کدهای بالا ابتدا یک Thread نوشتیم و زمان اون رو با دستور sleep به مقدار 2000 قرار دادیم..وظیفه این کد اینکه از زمانی که کلاس ما شروع به کار کرد 2 ثاینه منتظر بماند و بعد از اتمام دو ثانیه به دستور StartActivity رفته و اکتیویتی یا کلاس مدنظر ما رو اجرا کنه ممکنه برای برخی از دوستان سوال بشه که در در محیط بومی اندروید مسیر متفاوت تر از اینه و مقدار کدها بیشتره؟در جواب باید بگم که تمامی کارهای که در محیط های بومی وسعه اندروید انجام میدادیم،در این محیط فقد در کلاس  SplashActivityانجام داده میشود.به این صورت که ما با دستور MainLauncher = true این اکتیویتی رو به عنوان اکتیویتی شروع انتخاب کردیم.با دستور Theme هم استایل و تصویر مدنظرمون رو به برنامه دادیم.تنها کدی که اینجا ممکنه کمی گنگ باشه دستور NoHistory=true است.در برنامه  نویسی اندروید زمانی که بخواهیم از یک اکتیویتی به اکتیویتی دیگر برویم،اکتیویتی که در ابتدا اجرا شده فعال میماند و این کد اکتیویتی را که در ابتدا اجرا شده است رو از حافظه خارج میکند.تا در هنگام زدن دکمه  back اکتیویتی اولی نمایش داده نشود.

 

فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد
درباره نویسنده
admin2
رضا نقی لو
androiddev60@gmail.com
نظرات شما
نظر جدید