Android | Menbuat Splash Screen Dengan Animasi
Setelah kemarin kita telah belajar membuat aplikasi pertama hello world + pindah Activity, kali ini kita sharing cara membuat Splash screen + Animation,
Kurang lebih beginilah tampilannya :
Nah untuk gambar bisa ambil yang ini saja:
Pasti sudah bisa kan caranya membuat project baru android? kan udah di bahas di post sebelumnya? kalo belum bisa di lihat lagi di sini.
Nah kita mulai, Pertama kita buat Project Baru dulu dengan Nama SplashAnimationmin SDK 2.3 target dan compile android 2.3.3 saja, dan untuk Layout dan Class kita kasih nama Splash, nah untuk lebih jelasnya apa saja yang perlu di tambahkan liat gambar:
Kita buat layoutnya dulu saja. di sini hanya ada 2 layout yaitu untuk splash dan layout Target.
untuk Layout splash.xml dulu, Oh iya jangan lupa masukan gambar yang mau di tampilkan ke folder Drawable ya?
splash.xml
<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=".Splash" > <FrameLayout android:id="@+id/FrameLayout1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" > <ImageView android:id="@+id/splashimg" android:layout_width="match_parent" android:layout_height="106dp" android:layout_gravity="center" android:layout_marginBottom="50dp" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:src="@drawable/logocoretan" /> <ProgressBar android:id="@+id/progressBar1" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </FrameLayout> </RelativeLayout>
layout main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" > <ImageView android:id="@+id/imageView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/logocoretan" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Welcome To Menu" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>
Kalo masih ada eror coba cek di and android:src="@drawable/logocoretan" logocoretan adalah nama image di folder drawable yang kita tambahkan tadi.
Sekarang kita buat folder anime, caranya klik kanan pada folder res kemudian new-->folder kemudian kasih nama anim nah di folder anim kita buat 2 xml kita beri nama alhpa.xml dan translate.xml. untuk script bisa di lihat di sini :
alpha.xml
<?xml version="1.0" encoding="utf-8"?> <alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="3100" />
translate.xml
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate xmlns:android="http://schemas.android.com/apk/res/android" android:fromXDelta="0%" android:toXDelta="0%" android:fromYDelta="200%" android:toYDelta="0%" android:duration="2000" android:zAdjustment="top" /> </set>
alpha di sini untuk animasi seperti fade in, sedangkan translate adalah muncul dari bawah ke atas.Untuk selanjutnya kita buat classnya, cukup Class Splash.java dan Main.java
Splash.java
package fai.coretan.splashanimation; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.MotionEvent; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.ProgressBar; public class Splash extends Activity { protected boolean _active = true; protected int _splashTime = 3000; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.splash); StartAnimations();//Menjalankan Method Start Animasi Thread splashThread = new Thread() { //Timer Splash public void run() { try{ int waited = 0; while(_active && (waited < _splashTime)) { sleep(100); if(_active) { waited += 100; } } } catch(InterruptedException e) { // do nothing } finally { finish(); Intent newIntent=new Intent(Splash.this, Main.class);//pindah Activity Main startActivityForResult(newIntent,0); } } }; splashThread.start(); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { _active = false; } return true; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.splash, menu); return true; } //Disini Deklarasi Animasinya(StartAnimation) private void StartAnimations() { // TODO Auto-generated method stub //Animasi untuk Frame Layout mengunakan alpha.xml Animation anim = AnimationUtils.loadAnimation(this, R.anim.alpha); anim.reset(); FrameLayout l=(FrameLayout) findViewById(R.id.FrameLayout1); l.clearAnimation(); l.startAnimation(anim); //Animasi untuk ProgressBar1 mengunakan alpha.xml Animation anim1 = AnimationUtils.loadAnimation(this, R.anim.alpha); anim1.reset(); ProgressBar l1=(ProgressBar) findViewById(R.id.progressBar1); l1.clearAnimation(); l1.startAnimation(anim); //Animasi untuk Gambar mengunakan Translate.xml anim = AnimationUtils.loadAnimation(this, R.anim.translate); anim.reset(); ImageView iv = (ImageView) findViewById(R.id.splashimg); iv.clearAnimation(); iv.startAnimation(anim); } }Main.java
package fai.coretan.splashanimation; import android.app.Activity; import android.os.Bundle; public class Main extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }Jangan lupa Update di AndroidManifest.xml
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="fai.coretan.splashanimation" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="10" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="fai.coretan.splashanimation.Splash" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="Main"></activity> </application> </manifest>
Kalo sudah selesai coba di jalankan ya..
0 komentar:
Posting Komentar