تاريخ : شنبه 13 آبان 1396 | 18:25 | نویسنده : بخش سئوی نیلوبلاگ

با بلونا همراه باشید در ایجاد Splash Screen در Android

بلونا: به صفحه ای که هنگام اجرای اپلیکیشن برای چند ثانیه نمایش داده می شود که معمولا شامل لوگو است و پس از آن به صفحه ی اصلی اپلیکیشن منتقل می شود Splash Screen گویند.

درواقع این صفحه یکActivity  است که باید مشخص کنید پس از اجرای اپلیکیشن پس از مدتی معلوم (مثلا به مدت ۲ ثانیه ) محو شود و صفحه ی اصلی اپلیکیشن نمایش داده شود.

نحوه ساخت Splash Screen

در Android Studio یک Empty Activity مثلا با API 10  بسازید . برای ایجاد  Splash Screen بهتر است آنرا در یک thread  دیگر اجرا کنید (مثلا با استفاده از Handler و import  کلاس آن) .

سپس با استفاده از متد postDelayed زمان توقف را تعیین کنید. این متد دو ورودی می پذیرد یک Runnable و یک مدت زمان بر حسب میلی ثانیه. در قسمت ورودی این متد یک Runnable بسازید (new  کنید)  و به طور خودکار متد run  ، override می شود.

حال کاربر باید پس از ۲ ثانیه (۲۰۰۰ میلی ثانیه) به صفحه ی اصلی اپلیکیشن یا Activity بعدی شود. برای این کار چون از یک Activity  بهActivity  دیگر انتقال صورت می گیرد از Intent استفاده کنید.

در متد run که override  شد ، یک Intent بسازید( new  کنید) و Activityهای اول و دوم را به آن پاس دهید. در انتها startActiviy  را با ورودی Intent که ساختید را فراخوانی کنید.

فراموش نکنید که  Activityها را در manifest تعریف کنید.

سپس متد finish را فراخوانی کنید که Splash فقط یک بار در هر اجرا  نشان داده شود یعنی مثلا شما اپلیکیشن را اجرا کردید و Splash نمایش داده شد و به صفحه یبعد رفتید. حال اگر back  را بزنید مجددا Splash  را مشاهده خواهید کرد. برای حل این مشکل و اینکه در هر بار اجرای اپلیکیشن تنها یک بار Splash را مشاهده کنید می توانید از این متد استفاده کنید.

public class SplashActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); new Handler().postDelayed(new Runnable() { @Override public void run() { Intent i = new Intent(SplashActivity.this, MainActivity.class); startActivity(i); finish(); } }, ۲۰۰۰) }
}

ایجاد Manifest

دانلود Manifest

دستور finish باعث می شود تا اکتیویتی بعد از سپری شدن تایم مشخص شده، بسته شود و امکان برگشت به آن وجود نداشته باشد.
هدف ما در این آموزش اجرای اسپلش اسکرین بود اما طبق ضرب المثل “کار را که کرد آن که تمام کرد”، بد نیست ما هم کار را تمام کرده و یک نمونه دیزاین صفحه SplashScreen را هم تمرین کنیم.
قصد داریم اسپلش ما شامل یک رنگ پس زمینه و لوگو باشد. در مباحث قبل مطرح شد که تصاویری که قصد استفاده از آنها درون اپلیکیشن داریم را باید درون پوشه drawable قرار داد. فایل تصویر لوگو را کپی کرده و روی فولدر drawable راست کلیک و سپس paste می کنیم:

Android Studio

البته خارج از محیط اندروید استودیو نیز می توان تصویر یا هر فایل دیگر را در مسیری که پروژه ساخته شده قرار داد. توسط ویژگی android:src نیز مسیر تصویر را تعیین می کنیم (عکس مدنظر ما android_logo.png نام دارد).
activity_splash

مجدد پروژه را اجرا می کنیم:

splash screen

بهتر است نوار Toolbar مربوط به اکتیویتی اسپلش اسکرین را نیز حذف کنیم. عموما صفحات اسپلش اسکرین بدون هرگونه تولبار و… هستند. برای حذف تولبار لازم است یک Theme (تم) بدون تولبار (اکشن بار) برای اکتیویتی مدنظر تعریف کنیم. این مباحث مربوط به طراحی تم می شود که در آینده به آن خواهیم پرداخت اما فعلا به جهت رفع نیاز به توضیح اجمالی اکتفا می کنیم. ویژگی theme را درون تگ باز به اینصورت اضافه کردیم:

files

تغییرات به درستی اعمال شد و مانند دفعات قبل بعد از نمایش ۳ ثانیه اسپلش اسکرین، به اکتیویتی اصلی منتقل می شویم.
قدم آخر در این آموزش اضافه کردن فایل صوتی به اسپلش اسکرین است به اینصورت که همزمان با اجرای اپلیکیشن و نمایش صفحه اسپلش، یک فایل صوتی نیز در پس زمینه اجرا شود. برای اضافه کردن فایلهای صوتی به پروژه اندرویدی لازم است یک فولدر با نام raw درون فولدر res ایجاد شود که با راست کلیک روی پوشه res و سپس New > Directory قابل انجام است.


حالا می بایست فایل صوتی مدنظر را کپی کرده و درون پوشه raw قرار دهیم (اکثر فرمت های رایج صوتی پشتیبانی می شود):

فایل صوتی با نام sound.ogg که انتخاب کردیم یک افکت ۲ ثانیه ای است. اکنون باید فایل صوتی را به اکتیویتی اضافه کنیم. ابتدا یک شئ از کلاس MediaPlayer با نام دلخواه splashSound ساختیم:

files



امتیاز بدهید :

| امتیاز : 0
موضوع : | بازدید : 666
برچسب ها :