29 Kasım 2013 Cuma

Android Thread Tanımlama ve Açılış Ekranı Resimli Anlatım

Oyunları çalıştırırken,ekrana bir sürü ıvır zıvır logo gelip oyunun reklamını yapar ya da oyun hakkında bilgilendirme yapar, oyunun fotoğraflarını falan gösterir.İşte bunlar oyun arka planda yüklenip oynanmaya hazır hale getirilirken ön planda çalıştırılır ve kullanıcıyı bilgilendirir.Arka planda oyun çalıştırılıp,ön planda kullanıcının bilgilendirilmesi eş zamanlı iki ayrı işlemdir ve bu gibi eş zamanlı işlemler Java'da thread'ler sayesinde gerçekleşir.Yani kısacası, Java'da thread'ler eş zamanlı birden fazla işlemi yapmaya olanak sağlayan yardımcı sınıflardır.


Biz de bugünkü uygulamamızda thread yardımıyla açılış ekranı yapmaya çalışacağız.O zaman kolları sıvayıp, hemencecik bir tane ThreadAcilisEkrani projesi yaratalım.Gelen Thread Açılış Ekranı sınıfının adını ismin üstüne gelip F2'ye basarak Etkinlik olarak değiştirelim.Daha sonra bu sınıfı sürükleyip paketin içine bir daha atalım ve yeni kopyanın ismine AcilisEkrani yazalim.Şimdi, sınıflarımız için iki ayrı tasarıma ihtiyacımız var.Layout'a gelip main.xml'ın adını F2'ye basıp etkinlik.xml olarak değiştirin ve sürükleyip layout'a bir daha atın ve ismi acilisekrani.xml olarak değiştirin.


Etkinlik sınıfımızın tasarımı etkinlik.xml'e bir tane listView atalım.Etkinlik sınıfımız açılış ekranından sonra karşımıza çıkacak olan etkinlik.




Şimdi de acilisekrani.xml tasarım dosyamızı açıp, android:background kodu ile drawable dosyamızın içine attığımız acilisekrani resmini arkaplan resmi yapalım:


Etkinlik.java sınıfımızın içinde daha önce öğrendiğimiz şekilde listView değişkeni yaratıp, setAdapter methoduylada katar(String) dizisini listemize atıyoruz.Burada farklı olarak dizi elemanlarını parantez içinde tek tek atamak yerine dizimize values>>>strings dosyasında oluşturduğumuz string-array'ini atıyoruz.String.xml içindeki bu diziye ulaşabilmek için de aşağıdaki gibi Resources tipinde bir değişken oluşturup getResources()'ı kendisine atıyoruz.Daha sonra da bu değişken üzerinden getStringArray methodununun içine parametre olarak R.array.basliklarstring yazıp strings.xml'de oluşturduğumuz diziyi  başlıklar  dizisine atıyoruz:




Strings.xml'de string-array tagları arasına item taglarıyla dizi elemanlarını ekliyoruz:


 Şimdi manifest'i açıp aşağıdaki gibi düzenleyin:




Yukarıda açılış ekranının sınıfını başlangıç etkinliği olarak belirliyoruz(LAUNCHER). Diğer etkinliğimizide çağrıldığında çalışması için DEFAULT olarak bırakıyoruz.

android:name="android.intent.action.MAIN"  ilk etkinliğimizin(acilisekranı) ismini bu şekilde yazıyoruz.
android:name="com.uygulamalar.androidce.ETKINLIK" ikinci etkinliğimizide bu şekilde adlandırıyoruz.
Daha sonra intent ile çağırırken bu adlandırmayı kullanacağız.

Evetttt geldik işin thread tanımlama kısmına. Thread tipinde zamanlayici isminde değişken tanımlıyoruz ve buna yeni bir Thread oluşturup içini aşağıdaki gibi doldurarak atıyoruz:



Thread içindeki run methodu try,catch ve finally bloklarından oluşmaktadır. try'da sleep(5000) ile 5000 milisaniye yani 5 saniye sonra thread'ı sonlandırma işlemini gerçekleştiriyor. catch bloğunda ise olası bir hatanın oluşması durumunda hata yakalama işlemi gerçekleştiriliyor.Exception konusuna daha sonra derinlemesine gireriz.Şimdi fazla kurcalamayalım. finally bloğunda Intent yardımıyla Etkinlik.java aktivitemizi çağırıyoruz.En son olarakta thread method tanımlamasını bitiriyoruz ve thread değişkeniyle start() methodunu çağırıp thread'ı çalıştırıyoruz.


Uygulamadan Görüntüler:

İlk 5 Saniye Boyunca Görülen Açılış Ekranı:


 5 Saniye Sonra Bizi Karşılayan Arka Plandaki Etkinliğimiz:





Uygulamanın kaynak kodunu buradan indirebilirsiniz.

Hiç yorum yok:

Yorum Gönder