Android Animation :: Membuat Splash Screen pada Aplikasi Android (II)

Melanjutkan bagian pertama tentang bagaimana cara membuat splash screen di Android, inilah bagian keduanya.
Di bagian pertama kita telah membuat file-file xml yang berfungsi sebagai layout dan animasi. Kini kita akan membuat file java-nya yang berfungsi untuk mendayagunakan resource yang telah kita buat sebagai splash screen.  :) Here we go.

Membuat SplashScreen Activity

Oke, inilah file utama yang berguna untuk membuat splash screen pada aplikasi splash screen kita. Pertama-tama di folder src pada proyek Android kalian, bikin sebuah kelas baru dan berinama SplashScreen.java.
Setelah itu, copy pastekan kode berikut. Jangan lupa ganti nama package dengan nama package pada proyek Android kalian
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package id.web.twoh.helloworld;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.view.Window;
 
public class SplashScreen extends Activity{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.splash);
        /*menjalankan splash screen dan menu menggunakan delayed thread*/
        new Handler().postDelayed(new Thread() {
            @Override
            public void run() {
                   Intent mainMenu= new Intent(SplashScreen.this,HelloWorldActivity.class);
                   SplashScreen.this.startActivity(mainMenu);
                   SplashScreen.this.finish();
                   overridePendingTransition(R.layout.fadein,R.layout.fadeout);
            }
    }, 3000);
    }
}
Mari kita analisa kode di atas. :D Activity ini mula-mula akan meminta sebuah window feature menggunakan this.requestWindowFeature(). Metode ini biasa dipakai untuk menghilangkan title bar pada aplikasi Android. Yups, sebuah splash screen tidak butuh title bar, jadi dihilangkan saja. Kemudian kita set layout pada Activity ini ke layout splash.xml yang telah kita buat di postingan sebelumnya. Setelah itu, kita akan menjalankan splash screen dan main menu menggunakan delayed thread. Kita akan menggunakan android.os.Handler untuk mengirimkan pesan bahwa sebuah thread akan dijalankan dengan metode postDelayed(). Method postDelayed() tersebut membutuhkan dua buah parameter masukan, yaitu Thread yang ingin dijalankan dan lama waktu delay hingga Thread itu selesai dieksekusi.
Kemudian kita masuk ke dalam runnable process, di sini kita akan membuat Intent baru untuk berpindah dari aktivitas SplashScreen ini ke aktivitas Main Menu, yang kebetulan di program ini namanya adalah HelloWorldActivity. Setelah itu kita jalankan Intent tersebut dengan menggunakan method startActivity(), yang mana setelah selesai dijalankan, aktivitas SplashScreen kemudian akan memanggil method finish() untuk mengakhiri aktivitas tersebut. Nah, inilah yang membuat kalau kita klik tombol back dari main Menu, kita nggak akan kembali ke layar SplashScreen karena aktivitas tersebut sudah dimusnahkan. :D
Sedangkan, yang terakhir adalah method overridePendingTransition() yang berfungsi untuk memberikan efek animasi fade-in dan fade-out pada waktu pergantian aktivitas. Kemudian angka 3000 adalah waktu delay untuk parameter masukan, satuannya adalah milliseconds. Yang berarti total proses transisi adalah 3 detik.
Kemudian ini adalah kelas main menunya, bernama HelloWorldActivity.java
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package id.web.twoh.helloworld;
 
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
 
public class HelloWorldActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_hello_world);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_hello_world, menu);
        return true;
    }
 
}
Kelas ini nggak ada modifikasi apa-apa, kalau kalian mengikuti tutorial Android hello world dari sini.
Kemudian ini adalah file activity_hello_world.xml yang berfungsi sebagai layout HelloWorldActivity, sama juga nggak ada modifikasi, kecuali ngganti tulisannya saja. :D
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".HelloWorldActivity" >
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="@string/hello_world" />
 
</RelativeLayout>
Kemudian, ini Android Manifest-nya. Jangan lupa mengeset intent-filter nya ke aktivitas SplashScreen.
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?xml version="1.0" encoding="utf-8"?>
    package="id.web.twoh.helloworld"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="8" />
 
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="id.web.twoh.helloworld.HelloWorldActivity"
            android:label="@string/app_name" >
        </activity>
        <activity
            android:name="id.web.twoh.helloworld.SplashScreen"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
 
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
 
</manifest>
Dan inilah tampilan Splash Screen aplikasi ketika dijalankan. Oh iya, jangan lupa untuk menceklist Show All Animation pada Settings -> Display -> Animation. Karena kalau tidak, efek animasi dari splash screen-nya tidak akan berjalan.
Contoh transisi animasi pada splash screenContoh transisi animasi pada splash screen

Post a Comment