#ANDROID - Karşılama Ekranı (Splash Screen), Thread, MediaPlayer ve Intent Kullanımı
Uygulamayı ilk açtığınızda ekranda bir karşılama görüntüsü vereceğiz, arka planda inceden müzik çalacağız ve bu ekran 2-3 saniye sonra otomatik olarak kapanacak, kullanıcıyı otomatik olarak anasayfaya yönlendireceğiz. Belki Facebook ve Youtube mobil uygulamalarında gözünüze çarpmıştır. Uygulamayı ilk açtığınızda sizi logolarıyla beraber düz bir ekranda karşılayıp, biraz beklettikten sonra sizi uygulamayla baş başa bırakıyorlar. Bu özelliği bir ara Twitter da kullanıyordu.
Şimdi gelelim bu işi nasıl yapacağımıza. Öncelikle hosgeldin.xml ve HosgeldinEkrani.java dosyalarını oluşturuyoruz. Ardından drawable klasörümüze bg_app adında 400x800 boyutunda bir resim atıyoruz. (Boyut tamamen sizin keyfinize bağlı daha kaliteli bir şey koyabilirsiniz.) Uygulama açıldığında biz bu resmi 3 saniye göstereceğiz ve ardından kullanıcıyı otomatik olarak yönlendireceğiz. Ek olarak bu 3 saniye boyunca arka planda bir müzik çalmasını istiyoruz bunun için projemize res klasörünün altında "raw" adında bir klasör daha oluşturup, bu oluşturduğumuz klasöre music_app adında bir mp3 dosyası atıyoruz.
hosgeldin.xml dosyası:
HosgeldinEkrani.java dosyası:
Burada yapılanların üzerinden kısaca geçelim. Bir MediaPlayer tanımlayarak müziği buraya atıyoruz ve hemen çalmasını söylüyoruz. Daha sonra bir Thread tanımlayarak bu sayfasının 3 saniye sonra yönlendirilmesini sağlıyoruz. Intent komutu bizim başka bir Activiy'e geçmemizi sağlıyor. 3 saniye sonra, önceki makalede yaptığımız ilk uygulamaya yönlendirileceğiz.
Burada ki en önemli olaylardan biriyse onPause durumu. 3 saniye sonra HosgeldinEkrani başka bir activity'e yönleneceği için Pause durumuna geçecek. Bizde Pause durumuna geçtiğinde müziği kapatmasını ve kullanıcının geri tuşuna bastığında bu sayfayı tekrar görmemesi için finish(); yani bu sayfayı bitirmesini istiyoruz.
Tüm bunları yapsakta uygulamamız istediğimiz gibi çalışmayacaktır çünkü AndroidManifest.xml dosyasında gerekli değişiklikleri yapmadık. AndroidManifest.xml dosyamızı açıyoruz. Burada yeni oluşturduğumuz HosgeldinEkrani.java classımızı tanıtmamız gerekiyor.
Gördüğünüz gibi HosgeldinEkrani activitymizi AndroidMainfest.xml dosyamıza tanıttık. Burada intent.action.MAIN ve intent.category.LAUNCHER uygulama başladığındığında ilk olarak HosgeldinEkrani activitymizi açmamızı söylüyor.
Her şey iyi güzel tamam da diğer activityleri nasıl tanımlıyoruz diyebilirsiniz. İşte bakalım 3 saniye sonra açılacak olan MainActivty'mizi nasıl tanımlamışız.
Splash Ekran Görüntüsü:
Şimdi gelelim bu işi nasıl yapacağımıza. Öncelikle hosgeldin.xml ve HosgeldinEkrani.java dosyalarını oluşturuyoruz. Ardından drawable klasörümüze bg_app adında 400x800 boyutunda bir resim atıyoruz. (Boyut tamamen sizin keyfinize bağlı daha kaliteli bir şey koyabilirsiniz.) Uygulama açıldığında biz bu resmi 3 saniye göstereceğiz ve ardından kullanıcıyı otomatik olarak yönlendireceğiz. Ek olarak bu 3 saniye boyunca arka planda bir müzik çalmasını istiyoruz bunun için projemize res klasörünün altında "raw" adında bir klasör daha oluşturup, bu oluşturduğumuz klasöre music_app adında bir mp3 dosyası atıyoruz.
hosgeldin.xml dosyası:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg_app">
</LinearLayout>
HosgeldinEkrani.java dosyası:
package com.hakancengiz.blogders;
import android.app.Activity;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
public class HosgeldinEkrani extends Activity {
MediaPlayer calgici;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hosgeldin);
calgici = MediaPlayer.create(HosgeldinEkrani.this, R.raw.music_app);
calgici.start();
Thread zamanlayici = new Thread(){
public void run()
{
try {
sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
Intent mainAc = new Intent(HosgeldinEkrani.this, MainActivity.class);
startActivity(mainAc);
}
}
};
zamanlayici.start();
}
@Override
protected void onPause() {
super.onPause();
calgici.release();
finish();
}
}
Burada yapılanların üzerinden kısaca geçelim. Bir MediaPlayer tanımlayarak müziği buraya atıyoruz ve hemen çalmasını söylüyoruz. Daha sonra bir Thread tanımlayarak bu sayfasının 3 saniye sonra yönlendirilmesini sağlıyoruz. Intent komutu bizim başka bir Activiy'e geçmemizi sağlıyor. 3 saniye sonra, önceki makalede yaptığımız ilk uygulamaya yönlendirileceğiz.
Burada ki en önemli olaylardan biriyse onPause durumu. 3 saniye sonra HosgeldinEkrani başka bir activity'e yönleneceği için Pause durumuna geçecek. Bizde Pause durumuna geçtiğinde müziği kapatmasını ve kullanıcının geri tuşuna bastığında bu sayfayı tekrar görmemesi için finish(); yani bu sayfayı bitirmesini istiyoruz.
Tüm bunları yapsakta uygulamamız istediğimiz gibi çalışmayacaktır çünkü AndroidManifest.xml dosyasında gerekli değişiklikleri yapmadık. AndroidManifest.xml dosyamızı açıyoruz. Burada yeni oluşturduğumuz HosgeldinEkrani.java classımızı tanıtmamız gerekiyor.
<activity
android:name=".HosgeldinEkrani"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Gördüğünüz gibi HosgeldinEkrani activitymizi AndroidMainfest.xml dosyamıza tanıttık. Burada intent.action.MAIN ve intent.category.LAUNCHER uygulama başladığındığında ilk olarak HosgeldinEkrani activitymizi açmamızı söylüyor.
Her şey iyi güzel tamam da diğer activityleri nasıl tanımlıyoruz diyebilirsiniz. İşte bakalım 3 saniye sonra açılacak olan MainActivty'mizi nasıl tanımlamışız.
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAINACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Splash Ekran Görüntüsü:

Hiç yorum yok :
Yorum Gönder