Farklı Cihazlarda Destek
Android cihazlar bütün dünyada çok fazla şekil ve boyutları
içermektedir.Başarılı Android uygulamaları geliştirmek için farklı cihaz
ayarlarına adapte edilmesi gerekmektedir.Farklı diller, ekran boyutları ve
versiyonları dikkate almanız gerekmektedir.
Farklı Diller Desteği
En iyi yöntem farklı
diller için farklı dosyalarda tutumak
MyProject/
res/
values/
strings.xml
values-es/
strings.xml
values-fr/
strings.xml
English (default locale),
/values/strings.xml
:<?xml version="1.0" encoding="utf-8"?> <resources> <string name="title">My Application</string> <string name="hello_world">Hello World!</string> </resources>
Spanish,
/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>
French,
/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>
Farklı Ekranlarda Destek
Android, aygıt ekranları iki genel özelliklerini kullanarak sınıflandırır:
büyüklüğü ve yoğunluğu
·
Dört genelleştirilmiş boyutları vardır : small,
normal, large, xlarge
·
Ve dört genelleştirilmiş yoğunlukları: low
(ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)
Farklı layout ve farklı
bitmap tanımlamak için ayrı dizinlerde bu alternatif kaynakların yerleştirmeniz
gerekir.
Farklı Layouts Ekleme
Farklı ekran boyutları
üzerinde kullanıcı deneyimini optimize etmek için, desteklemek istediğiniz her
ekran boyutu için benzersiz bir düzen XML dosyası oluşturmanız gerekir.
MyProject/
res/
layout/
main.xml
layout-large/
main.xml
Dosya adları aynı olmalıdır, ancak içerikleri ilgili ekran boyutu için optimize edilmiş bir kullanıcı arayüzü sağlamak için farklıdır.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
Eğer büyük ekranlarda özel
bir düzen sağlamak istiyorsanız, o zaman hem large ve hem de land qualifier kullanmanız
gerekir.
MyProject/
res/
layout/ # default (portrait)
main.xml
layout-land/ # landscape
main.xml
layout-large/ # large (portrait)
main.xml
layout-large-land/ # large landscape
main.xml
Farklı Bitmaps
her zaman düzgün genelleştirilmiş
yoğunluk kovalar her ölçeklendirilir bitmap kaynakları sağlamalıdır: low,
medium, high and extra-high density.
Bu
tüm ekran yoğunlukları iyi grafik kalitesi ve performansı elde etmesine
yardımcı olur.
MyProject/
res/
drawable-xhdpi/
awesomeimage.png
drawable-hdpi/
awesomeimage.png
drawable-mdpi/
awesomeimage.png
drawable-ldpi/
awesomeimage.png
Farklı
Platform Versiyon Desteği
Her zaman düzgün genelleştirilmiş
yoğunluk kovalar her ölçeklendirilir bitmap kaynakları sağlamalıdır: low,
medium, high and extra-high density.
Android'in
son sürümleri genellikle app için büyük API'leri sağlarken, daha fazla cihaz
güncellenecektir kadar Android'in eski sürümlerini desteklemeye devam
etmelidir. Bu ders aynı zamanda eski sürümlerini desteklemeye devam ederken son
API'leri için nasıl yararlanacağını gösterir.
En düşük ve hedef API Seviyeleri belirtin
AndroidManifest.xml dosyası uygulama ilgili ayrıntıları açıklar ve desteklediği
Android hangi sürümleri tanımlar
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest>
Runtime Sistem Versiyonu Kontrol Etmek
Android
Derlemesi sabitleri sınıfta her platform sürümü için benzersiz bir kod sağlar.
Bu API'ler sistemde mevcuttur sadece çalıştırılan yüksek API seviyelerine
bağlıdır kod sağlamak koşulları oluşturmak için uygulaması içinde bu kodları
kullanın.
private void setUpActionBar() { // Make sure we're running on Honeycomb or higher to use ActionBar APIs if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { ActionBar actionBar = getActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); } }
Styles ve Temalar
dialog
box:
<activity android:theme="@android:style/Theme.Dialog">
transparent
background:
<activity android:theme="@android:style/Theme.Translucent">
Kendi
tanımladığınız temalar için
/res/values/styles.xml
:<activity android:theme="@style/CustomTheme">
Bütün
programa uygulamak için
<application android:theme="@style/CustomTheme">
Hiç yorum yok:
Yorum Gönder