8 Şubat 2012 Çarşamba

Android Programlama VIII - Yazı Rengi Değiştirme ve Ses Dosyası Ekleme

Bu yazımızda küçük bir genel kültür testi uygulaması hazırlayacağız.Bu uygulamayla yazının rengini değiştirme ve butonlara tıklanıldığında uygun ses dosyalarının çalmasını sağlamayı öğreneceğiz.Hazırsak, gidelim!

Daha önceki gönderilerde resim,buton ekleme ve bunların tasarımını yapmayı öğrenmiştik.O yüzden önceden hazırladığım bu tasarımın graphical-layout'taki halini taslağı(outline) ile birlikte paylaşıyorum.Zaten sonunda kodlarıda yükleyeceğim,o yüzden sakince devam edelim:


Evet şimdi main.xml'i açıp yazılarımızı(textView) renklendirelim.Bütün textView'lerimizin içine aşağıda eklemiş olduğumuz android:textColor="#00FF00" kodunu ekliyoruz.


Burada #00FF00 üç ana renkten biri olan yeşili temsil eden html renk kodudur.
Eğer farklı renkler kullanmak isterseniz,buradan çeşitli renk kodlarıda ulaşabilirsiniz.

Eğer bütün textView'lere renk kodunu eklediyseniz,tasarımımız şu görünüme kavuşmuş olmalı:



Yazı rengini değiştirmeyi öğrendiğimize göre, şimdi butonlara tıklamayla ses dosyası çalıştırmayı öğrenelim.İlk önce res dosyasında raw adında yeni bir dosya oluşturalım.Res dosyasına sağ tıklayıp new>>>folder seçiyoruz ve folder name kısmına raw yazıyoruz:



Şimdi de raw dosyasının içine iki tane ses dosyası sürükleyip atıyoruz:




Şimdi GenelKültürTestiActivity.java dosyamızı açalım ve öğrendiğimiz gibi ilk iki butonu ve resmi kodlanabilecek şekilde programımıza tanıtalım:




Şimdi ses dosyamızın nesnesini ve id'si ile oluşturmayı nasıl yapıyoruz onu öğrenelim.İki tane ses dosyası değişkeni tanımlıyoruz :





Evet geriye bir tek butonlara tıklanıldığında ses dosyalarını çaldırma işlemi kaldı.Onu da OnClick metodumuzu yukarıda hata veren ana sınıfımızın yanındaki ampule tıklayıp "add unimplemted method" diyerek ekliyoruz ve içini şu şekilde dolduruyoruz:



Gördüğünüz üzere ses dosyalarını çalıştırmak için ses nesnelerinin start() metodunu çağırıyoruz.Bu kadar basit.

Kodumuz burada bitiyor dersem yalan söylemiş olurum.Nerede bu geriye kalan 4 buton diye sormanız lazım.Lakin diğerleri de aynı şekilde eklenildiği için tek tek yazma gereği duymadım.Uygulamanın tastamam bitmiş halini gönderinin sonunda paylaşacağım.

Uygulamanın Görüntüsü:




Evet arkadaşlar son olarak ses dosyalarımızın çalışıp çalışmadığını gösteren bir video hazırladım.Butonlardan gelen ses çok düşük o yüzden son ses açıp kulaklarınızı hoparlöre yapıştırıverin gari =)




Uygulamanın kodunu buradan indirebilirsiniz.

Android Programlama VII - Uygulamalarda Çoklu Dil Desteği

Herkese merhaba.

Bu yazımda uygulamalarımızı nasıl birden fazla dili destekleyecek hale getireceğimizden bahsedeceğim.

Yazdığımız uygulamalar büyüdükçe ve biz dünyanın her yerinden insanların uygulamamızı kullanabilmesini istedikçe, uygulamamızı daha fazla dili destekler hale getirmemiz gerektiği kaçınılmaz. Neyse ki bu iş aslında o kadar da zor değil.

Daha önceki uygulamalarımızda, uygulama içinde geçecek metinleri strings.xml dosyasına yazmayı ve oradan kullanmayı neden önerdiğimi, bu yazıda daha iyi anlayacaksınız. :)

Uygulama olarak bir önceki yazımda yaptığım kayıt formu uygulamasını kullanacağım.

CokluDilOgreniyorum isminde yeni bir proje oluşturup, içindeki dosyaların hepsini bir önceki projedeki dosyalarla deeğiştirdikten sonra, aşağıda gördüğünüz açık olan EtkinlikBir.java, EtkinlikIki.java, Sabitler.java, strings.xml ve manifest dosyasının içinde bir önceki uygulamanın paket adından doğan hataları düzelterek işe başlıyoruz.
Gördüğünüz gibi bu uygulamanın paket adı com.androidce.cokludilogreniyorum şeklinde.

Şimdi strings.xml dosyamızı açalım.

Çoklu dil destekleyen uygulamalarda genellikle diğer dillere çevirileri, uygulamayı yazan insan yap(a)mayacaktır. Bu yüzden de çeviriyi yapacak diğer insanların işini kolaylaştırmak ve daha doğru çeviriler yapabilmelerine olanak sağlamak adına, kullandığımız anahtar kelimeleri aşağı yukarı herkesin anlayabileceği şekilde yazmakta fayda var. Ben burada anahtar kelimelerimi İngilizce'ye çevireceğim.
Daha kolay değişiklik yapabilmek için Eclipse'in ara & değiştir (search & replace) özelliğinden faydalanalım.

Aşağıda gördüğünüz gibi değiştirilecek metni seçtikten sonra Ctrl + H tuşlarına basıyoruz.
Bu sorgu ekranında aşağıdaki Değiştir (Replace) tuşuna basıyoruz.
Yeni metni yazıp OK'e tıkladığımızda Eclipse, tüm metin_ eşleşmelerini text_ ile değiştirecek. Gördüğünüz gibi 3 dosya içinde 26 yerde değişiklik yapılacağına dair bilgi veriliyor.
Aşağıda da gördüğünüz gibi değişiklikler yapıldı.
Şimdi etiketlerin kalan kısımlarını da değiştirelim. İşlemin bitmiş halini aşağıda görebilirsiniz.
Şu an hatalar almış olabilirsiniz, bu normal bir durumdur. Bu etiketlerin kullanıldığı java dosyalarını da düzenlememiz gerekiyor.
Gördüğünüz gibi hala eski etiketler kullanılıyor. Bunun gibi hata vermiş noktaları da düzelttikten sonra bir sonraki adıma geçebiliriz.

Artık etiketleri de herkesin anlayabileceği halde olan bir uygulama var elimizde. Şimdi bu uygulamaya İngilizce dil seçeneğini ekleyelim.

Bunun için res dizini içindeki values dizininden bir kopya oluşturacağız.

values dizini seçiliyken Ctrl tuşuna basarak bu dizini res dizini üzerine taşıyoruz. Böylece aynı dizine values dizininden bir kopya oluşturacağız.
Oluşacak yeni dizine values-en ismini veriyoruz. Böylece eğer uygulamanın çalıştığı cihazın dili İngilizce'yse, values yerine values-en dizini içindeki strings.xml kullanılacak. Aynı şekilde Türkçe dili için de -tr ekleyebilirdik values kelimesinin sonuna. Ama bu durumda uygulamamızın varsayılan dili zaten Türkçe ve biz ek olarak İngilizce dilini ekliyoruz.
Şimdi artık çeviri zamanı.

values-en dizini içindeki strings.xml dosyasını açıp metinleri çevirmeye başlayabiliriz.
Yukarıda bahsettiğim gibi, eğer siz bu metinleri çeviremeyecekseniz, bu strings.xml dosyasını başka birisine gönderip ondan çevirmesini ve size geri göndermesini isteyebilirsiniz. Bu şekilde başkaları da sizin uygulamanıza katkı sağlayabilir. Ve her isteyene uygulamanızı kendi dilinde çalıştırma imkanı da sunmuş olursunuz.

Çeviri bittikten sonra aşağıdaki gibi bir hale gelmiş olmalı strings.xml dosyanız.
Artık uygulamayı çalıştırıp denemelerimiz yapabiliriz ama şöyle bir durum var. Android 2.2 sürümüyle uygulama geliştirdiğimiz için eğer elinizde bu sürüme ait bir sanal cihaz varsa içinde Türkçe desteği olmayacaktır. O nedenle uygulamayı Android 2.2 olan sanal bir cihazda çalıştırırsanız dil İngilizce olduğundan dolayı uygulamanız direk İngilizce başlayabilir.

Peki 2 dili birden nasıl deneyebiliriz? Basit. Emulatörde Türkçe desteği Android 2.3.3 sürümünden itibaren var. Bu yazıda anlattığım gibi Android 2.3.3 veya üstü bir sürüme sahip yeni bir sanal cihaz oluşturun. Daha sonra çalıştırmayı aşağıdaki gibi gibi yapın.
Eğer Android Application altında bir seçenek yoksa Android Application'a çift tıklayarak yeni bir ayar oluşturabilirsiniz. Daha sonra aşağıdaki ekranı görebilmeniz gerek. Target kısmından cihazımızı seçeceğiz. Buradaki seçeneğin Manual'de durmasında fayda var. Böylece uygulamanızı çalıştırırken hangi cihazda çalıştıracağınızı seçebilirsiniz.
Gördüğünüz gibi uygulama çalıştırılmadan önce hangi cihazla çalıştırmak istediğimizi bize soruyor. Ben 2.3.3 olan sürümü seçiyorum.
İşte uygulamamız çalıştı. Ben bu sanal cihazın dilini önceden Türkçe'ye ayarladığım için uygulamamız Türkçe çalıştı.
 Şimdi uygulamadan geri tuşuyla çıkıp dil ayarlarını değiştirelim.
Dili İngilizce yaptıktan sonra uygulamayı tekrar başlattığınızda sonucu görebilirsiniz.
Gördüğünüz gibi artık uygulamamız birden fazla dili destekliyor.

Bu yazıda bir uygulamaya nasıl birden fazla dil desteği eklendiğini, bunu yaparken Eclipse'in bize sağladığı bazı kolaylıkları ve birden fazla sanal cihaz varken istediğiniz birisinde uygulamanızı nasıl çalıştırabileceğinizi anlatmaya çalıştım.

Bu yazıda oluşturduğum projeyi buradan indirebilirsiniz.

İnşallah faydalı olmuştur.

Kolay gelsin, iyi çalışmalar. :)