Farklı Aygıtları Desteklemek
Android
işletim sistemine sahip cihazlar çok çeşitli ölçek ve boyutta platformlara
sahiptirler. Bu çeşitlilik, uygulamanızın çok sayıda farklı kullanıcıya
erişmenizde büyük rol oynar.Android’de mümkün olabilecek en iyi seviyede
başarıyı yakalayabilmek için uygulamanız, çok çeşitli bu cihaz türlerine uyum
sağlamak zorundadır. Bu çeşitlilikler içersinde en önemli sayabileceklerimiz
farklı dil desteği, ekran ölçekleri ve Android sürümleridir.
Bu yazımızda
farklı kaynak dosyalarıyla, uygulamanızın tek bir apk dosyası ile farklı
Android sürümleriyle çalışmakta olan cihazlara nasıl uyum sağlayacağı konusunda
bilgi vereceğim.
Farklı Dil Desteği
Uygulamanızı
kodlarken, kullanıcı arayüzünde kullandığınız string değerlerini bir dosyada
saklamak pratik ve kullanışlı bir yöntemdir. Android resource klasörü yardımıyla her bir Android projesi için kolaylıkla
sağlar.
Android
SDK Tools ile bir proje geliştiriyorsanız, bu araç kiti projenin ilk işlemi
olarak hemen res/
adında bir klasör oluşturur. Bu res/ klasörü, çeşitli türdeki kaynak
dosyalarını içerisinde barındırmayı amaçlar. Bu klasör içerisinde string
değerlerini taşıyan res/values/strings.xml gibi varsayılan bir
takım dosyalar yer alır.
Local Klasörler Oluşturmak ve String Dosyaları
Farklı
dillerde destek sağlayabilmek için, res/ klasörü içinde(-) ve ISO dil koduyla sonlanan
values dizinleri
oluşturmalısınız. Örneğin; values-es/
dizini basit es ISO dil koduna sahip bölgelerde kullanılacak basit bir string
kaynağını içerir. Android yerel ayarları kontrol ederek edindiği bilgi ile
hangi kaynak dosyasını kullanacağına kendi karar verir.
Destek
vermek istediğiniz dilleri seçtikten sonra values altında dizinleri aşağıdaki gibi
oluşturmalısınız.
ÖRNEK:
MyProject/
res/
values/
strings.xml
values-es/
strings.xml
values-fr/
strings.xml
Her bölge için gerekli stringleri ilgili dosyalarda
oluşturun.
Çalışma anında, yukarıda dediğimiz gibi kullanıcı tarafından
ayarlanan yerel ayarlar referans alınarak Android tarafından gerekli kaynak
dosyası otomatik olarak kullanılır.
Örneğin, Aşağıdaki örnekte farklı dilleri için farklı string
kaynakları tanımlanmıştır.
ÖRNEK:
İngilizce(varsayılan)
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">My Application</string> <string name="hello_world">Hello World!</string> </resources>
İspanyolca
/values-es/strings.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">Mi Aplicación</string> <string name="hello_world">Hola Mundo!</string> </resources>
Fransızca
/values-fr/strings.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">Mon Application</string> <string name="hello_world">Bonjour le monde !</string> </resources>
NOT:
Niteleyicileri kullanarak herhangi bir kaynak türünde de
Localization(Yerelleştirme) yapabilirsiniz. Örneğin, farklı bölgeler için
farklı karşılama animasyonları veya bitmap’ler kullanabilirsiniz.
String Kaynaklarını Kullanmak
XML
dosyalarınızda, <string> elementinin name niteliği ile tanımladığınız
string kaynaklarına kaynak kodundan erişmek için aşağıdaki gibi bir yapı
kullanabilirsiniz.
ÖRNEK:
// Get a string resource from your app's Resources String hello = getResources().getString(R.string.hello_world); // Or supply a string resource to a method that requires a string TextView textView = new TextView(this); textView.setText(R.string.hello_world);
Kaynak kodunuzdan string değerine yukarıdaki şekilde
erişirken, UI XML dosyaları aracılığıyla erişmek için ise aşağıdaki XML kodları
kullanılır.
ÖRNEK:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" />
Soru ve Görüşleriniz için: AndroidVeJava