Last Updated on 12 years by Mas Herdi
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
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. 😀 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. 😀
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
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. 😀
<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.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" 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.
mas ato mbak numpang nanya yak…
menu ini ada di mana??? menceklist Show All Animation pada Settings -> Display -> Animation
di emulator ato di eclipse nya…..
plis kasih tau lokasinya dimana soalnya dah nyari di2 tempat itu gak nemu
tolong pencerahannya…
Buset, panggil aja mas bro 😀
Ada, di emulator Androidnya. bagian Settings -> Display -> Animation
thx bro..
dari 5 tutorial splah screen yng ane coba..
cuman ini yg berhasil dgn mudah..
^________________^
Oh, tentu saja. Tutorial di sini dibuat sesuai standar internasional dan diuji keakuratannya secara detail oleh para ahli sebelum di-posting 🙂
Sama-sama
mas naufal alhamdulillah tutorialnya jadi dengan sempurna
tapi kalo aku masukin hasilnya ke editText gimana ya mas
kalo punya mas naufal kan masuk ke textbox
nah kalo hasilnya itu masuk ke editTextnya main gmn?
aku pake setText(String.valueOf) ko ga jadi mas hasilnya editext di main kosong?
mohon pencerahanya mas 😀
Pada halaman utama setelah splashscreen, tinggal diganti saja TextView dengan EditText 🙂
mas naufal saya mau tanya kalo kita punya 6 gambar .jpeg mau kita buat satu animasi dari 6 gambar tersebut dalam satu activity bisa gak mas bro
Terima kasih . . .
Alhamdulillah tutorialnya sangat membantu sekali…
😀
Hatur nuhun pisan 😀
punya saya seperti ini mas
“The application has stopped unexpectedly.
Please try again”
gimana yah solusinya
Coba cek di logcat errornya gimana 🙂
gan kok ane splash screen nya tidak mauh berubah yh malahan gambar nya Biru terus,?
oh iyh gan di emulator Android. bagian Settings -> Display -> Animation
di emulator ane gk ada animation nya gan?
caba untuk di jelaskan
terimakasih
Gan…
Yg terima jasa ganti boot screen dan splash image dmn ya.. Tanda kutip .. Karena saya gaptek .. Hehehe
kalau splash/boot screen untuk aplikasi. Saya juga terima gan (:
mas hafizh, aku build apknya kok keluarnya 2 ya, 1 pake splash yg satunya ga pake splash, mohon pencerahanya :v
bro, ane layout R.layout.fadein sama R.layout.fadeout nya kok nggak kedetek ya?
itu dimasukkan ke folder res/drawable
overridePendingTransition(R.layout.fadein,R.layout.fadeout);
buat file xml fadein lagi di direktori layout??
bukan, dimasukkan ke folder res/drawable
Mas saya koq stuck di splasscreenya, jadi splash screennya nutupin mainactivitynya gitu
coba cek postingan pertama bro, di situ ada penjelasan tentang cara menghilangkan splashscreen nya
Kok saya error nya d fadein dan fadeout itu mas ?