ایجاد صفحه اسپلش (Splash Screen)

چگونه در اندروید صفحه اسپلش (Splash Screen) بسازیم؟

 

 

همینطور که تو اپلیکیشن‌های مختلف دید اکثرشون Splash Screen دارن. منم تصمیم گرفتم آموزش ایجاد Splash Screen  رو براتون بزارم.امیدوارم به کارتون بیاد.

همینجور که تو آموزشهای قبلی دیدید من سعی می‌کنم از کوتاهترین مسیر برم جلو و از زیاده‌گویی پرهیز کنم. که هم زودتر به نتیجه برسیم و هم از اتلاف وقت جلوگیری بشه.

ابتدا یه اکتیویتی با هر اسمی که استاندارد نام‌گذاری خودتون تو پروژه‌تون دارید ایجاد میکینم.من اینجا اسمشو میزارم ActivitySpl.

 

درون Acticity_spl.xml  ؛ یک ImageView  ایجاد می‌کنیم و تنظمیات زیر را اضافه می‌کینم.

فقط قبل از هر کاری لوگو خودتونو درست کنید و سایزشو برای اکیتیویتون تنظیم کنید.

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:id=”@+id/activity_spl”
android:orientation=”vertical”
android:background=”#ffffff”
android:gravity=”center”

android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”rena.myapplication.ActivitySpl”>
<ImageView
android:layout_width=”wrap_content”
android:src=”@drawable/lgogforlearn”
android:layout_height=”wrap_content” />
</LinearLayout>

اگه به کد نگاه کنید متوجه میشید که پس زمینه رو سفید گذاشتم و تصویر لوگو هم اسمشو تو قسمت src  ست کردم.

قدم بعدی اینه که یه Style جدید ایجاد کنیم تا به ProgressBar مون تخصیص بدیم.

اول فایل colors.xml را باز میکینیم و یه colorAcent  جدید ایجاد می‌کنیم:

<color name=”colorSplAccent”>#a2fc43</color>

 

بعد تو فایل AndroidManifest.xml تم اکتیویتی اسپلش رو تغییر میدیم به تم جدید:

<activity android:name=”.ActivitySpl” android:theme=”@style/ActivitySpl”>

 

حالا تو فایل Styles.xml خط زیر را اضافه می‌کنیم:

<style name=”ActivitySpl” parent=”Theme.AppCompat.Light.NoActionBar”>

<item name=”colorPrimary”>@color/colorPrimary</item>
<item name=”colorPrimaryDark”>@color/colorPrimaryDark</item>
<item name=”colorAccent”>@color/colorSplAccent</item>

حالا یه ProgressBar  هم اضافه میکنیم تا در لحظه‌ای که برنامه میخواد اجرا بشه و تو اون چند ثانیه انتظار نمایش داده بشه.

<ProgressBar
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
style=”@style/Widget.AppCompat.ProgressBar”/>

 

بعد از نوشتن کدهامون یه AndroidManifest.xml را باز می‌کنیم تا تغییرات لازم را بدهیم.

اگه همه چیز را همونجور که بهتون گفتم انجام داده باشید باید اکتیویتی splash  باید اونجا تعریف شده باشه.

فقط موضوعی که هست اینه که چون اکتیویتی اسپلش باید قیل از همه اکتیویتی‌ها اجرا بشه باید جای MainAticvty را با ActivitySpl عوض کنیم تا اکتیویتی لانچر(LUNCHER ) ActivitySpl بشه.

 

<?xml version=”1.0″ encoding=”utf-8″?>
<manifest xmlns:android=”http://schemas.android.com/apk/res/android”
package=”rena.myapplication”>

<application
android:allowBackup=”true”
android:icon=”@mipmap/ic_launcher”
android:label=”@string/app_name”
android:supportsRtl=”true”
android:theme=”@style/AppTheme”>
<activity android:name=”.ActivitySpl”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
<activity android:name=”.MainActivity”></activity>
<activity android:name=”.Main2Activity” />

</application>

</manifest>

 

نتیجه کار رو میتونید ببینید:

 

به‌طور معمول تو قسمت اسپلش وقتی اون زمان انتظار برای بالا اومدن برنامه طی میشه کدهای مربوط به اتصال به دیتابیس و برقراری ارتباط با سرور نوشته میشه و در صورت نبودن هیچ مشکلی تو ارتباط برنامه بالا میاد و اکتیویتی اصلی اپلیکیشن باز میشه.

من اینجا فقط چند ثانیه توقف ایجاد شده و انتقال به MainActivity  را براتون می‌نویسم تا تو آموزشهای بعدی که اتصال به دیتابیس را آموزش دادم کدهای مربوطه را بهش اضافه کنیم.

تو ActivitySpl.java  کدهای زیر را برای ایجاد delay و باز کردن MainActivity می‌نویسیم:

 

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_spl);

int secondsDelayed = 1;
new Handler().postDelayed(new Runnable() {
public void run() {
startActivity(new Intent(G.context,MainActivity.class));
finish();
}
}, secondsDelayed * 5000);
}

کدی که اینحا نوشتیم کد بسیار ساده برای ایجاد  توقف چند ثانیه‌ای است. تون عدد 5000  که میبینید به میلی ثانیه است یعنی تو برنامه ما توقف 5 ثانیه خواهد بود .

 

0 پاسخ

دیدگاه خود را ثبت کنید

آیا می خواهید به بحث بپیوندید؟
در صورت تمایل از راهنمایی رایگان ما استفاده کنید!!

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *