Sonunda, çoklu ekran için düzenleri ve simgeyi işleyen bir yapı oluşturdu.
Android, cihaz görüntülerini iki parametreye göre kategorilere ayırır:
- Ekran boyutu, ekranın fiziksel boyutu (çapraz olarak ölçülür)
- Ekran yoğunluğu, ekranın fiziksel piksel yoğunluğu (inç başına piksel veya ppi cinsinden) '
Ekran boyutunu ve yoğunluğunu hızlı bir şekilde belirlemek için lütfen Android için "Boyutum Nedir " uygulamasını yükleyin .
Ekran boyutu
Android, dört genelleştirilmiş ekran boyutu tanımlar:
Qualifier Size
small ~3 inches (approx)
normal ~4 inches (approx)
large Exceeds 4 inches
xlarge Exceeds 7 inches
- Çoğu telefon küçük veya normal olarak sınıflandırılır (çapraz olarak kabaca 3 ila 4 inç). Ama şimdi Galaxy S4, HTC One, Xperia Z gibi geniş ekranlı birçok telefon var.
- Samsung Galaxy Tab gibi küçük bir tablet, büyük (4 inçten büyük) olarak sınıflandırılır
- Ekstra büyük, büyük cihazlar için geçerlidir, örneğin büyük tabletler
Android, dört genelleştirilmiş ekran yoğunluğu tanımlar:
Qualifier Description Nominal value
ldpi low density 120 ppi
mdpi medium density 160 ppi
hdpi high density 240 ppi
xhdpi extra high density 320 ppi
Tipik:
- Uygulama düzenleriniz üzerinde en çok ekran boyutu etkiye sahiptir
- Görüntü ve grafik kaynaklarınız üzerinde en çok ekran yoğunluğu etkindir
Burada cihaz ekranının yüzde farkı listelenmiştir
- Ldpi -% 75
- Mdpi-% 100 (Android geliştirici sitesine göre taban)
- Hdpi -% 150
- XHdpi -% 200

Ancak şimdi bildiğimiz gibi, cihazın çoğunun 480X800 ile geldiğini biliyoruz, bu yüzden bunu temelli cihaz olarak kabul ediyorum, bu nedenle yeni hesaplamamız bunu beğenecek
- Ldpi -% 50
- Mdpi-% 66,67
- Hdpi -% 100
- XHdpi-% 133,33
bu, ilk simge ve tasarımın yalnızca 480X800 için ve sonra geri kalanlar için (yani Ldpi, Mdpi, Xhdpi) oluşturulacağı anlamına gelir .
Tüm düzen için ortak olan ve renk ve şekil bakımından aynı olması gereken (karmaşık şekil, eğri yok) resimler vardır, bu nedenle bu tür bir görüntü 9patchiçin "çekilebilir (son eksiz)" klasöre konulacak görüntüler oluşturuyoruz . 9Patch görüntüsü oluşturmak için DrawNinePatch veya BetterNinePatch kullanabilirsiniz.
Şimdi sadece resimlerinizi Android standartlarına göre yeniden adlandırın ve uygulamanızı tamamlayın hdpive ardından sadece drawable-hdpiklasörü alın ve Adode Photoshop'u açın (önerilen) Eylem tüm boyutlar için oluşturulduktan sonra birden çok boyutta Eylem oluşturun (yalnızca boyutu yüzde oranına göre değiştirin) sonra yapın Toplu Otomatikleştirin ve kaynağı (çekilebilir-hdpi) ve hedefi (çekilebilir-ldpi, çekilebilir-mdpi, çekilebilir-xdpi) verin.
Photoshop'u kullanmanız için ısrar etmemin nedeni, görüntünüzü Eylemler ile otomatik olarak yeniden boyutlandıracak ve bir artı nokta daha dosyayı yeniden adlandırmanıza gerek olmamasıdır (orijinal olanla aynı adı atayacaktır).
Tüm görüntülerin oluşturulmasını tamamladıktan sonra, projenizi yenileyin ve test edin.
Bazen ekranı (xhdpi, hdpi, mdpi) destekleyen düzenin küçük ekranda (ldpi) kesilmesi olasılığı olabilir, bu nedenle bunun için ayrı bir Düzen klasörü (düzen-küçük) oluşturun ve ScrollView(çoğunlukla) ekleyin . Bu kadar.
Tablet
Tabletler iki boyutta kategorize edilir.
- 7 "(1024X (600-48 (gezinme çubuğu))) = 1024X552 (çekilebilir büyük)
- 10 "(1280X (800-48 (gezinme çubuğu))) = 1280X752 (çekilebilir xlarge)
Bunda hem ekran için görüntü oluşturmalı hem de onları buna göre yerleştirmeliyiz
Sonuç olarak, uygulamamızda birden çok ekranı desteklemek için bu klasöre sahip olacağız.
drawable
drawable-ldpi
drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-large
drawable-xlarge
ile daha niteleyici kombinasyon olacak Screen size and Screen density
drawable-large-ldpi
drawable-large-mdpi
drawable-large-hdpi
drawable-large-xhdpi
ile daha niteleyici Screen density and Version
drawable-ldpi-v11
drawable-mdpi-v11
drawable-hdpi-v11
drawable-xhdpi-v11
ve daha niteleyici Screen size and Version
drawable-large-v11
drawable-xlarge-v11
ve daha niteleyici Smallest width concept(SW)
drawable-sw???dp
Dahası, Android V3.0 Honeycomb'da SW(smallest width)hangi cihazın ekran genişliğine göre kategorize edildiğine dair yeni bir konsept sundular , bu nedenle adlı bir klasör oluşturursak drawable-sw360dp720dp (genişlik veya yükseklik) olan cihaz bu klasördeki kaynağı kullanacaktır.
örneğin çekilebilir-sw? dp için Samsung Galaxy S3 dp sonekini bulmak için DP Hesaplamasına
referansla, Düzeninizi veya S3 için çizilebilirliği desteklemek istiyorsanız, hesaplamada
px = Cihaz genişliği = 720
dpi = Cihaz yoğunluğu = 320
formül verildi
px = dp * (dpi / 160)
formülün değişmesi nedeniyle piksel değerine sahibiz
dp = px / (dpi / 160)
şimdi değer katmak,
dp= 720 / (320/160)
dp=360.
bu yüzden drawable-sw360dpişi yapacak
GsmArena'dan Cihaz konfigürasyonunu alın Sameway
, Cihazın Android API sürümüne göre klasör de oluşturabilirsiniz, yani çekilebilir-hdpi-v11` böylece API11 ve Hdpi olan cihaz bu kaynakları kullanacaktır.
Ek İpuçları:
Göreli düzenler, dp, sp ve mm kullanın
dp birimleri - 160 ppi ekranda, yani orta yoğunlukta 1 fiziksel piksele normalize edilen aygıttan bağımsız pikseller. Çalışma zamanında ölçeklendi. Ekran öğesi boyutları için kullanın
sp birimleri - dp birimlerine göre kayan nokta değerleri olarak belirtilen, ancak ek olarak kullanıcının yazı tipi boyutu tercih ayarı için ölçeklenen ölçeklenmiş pikseller. Çalışma zamanında ölçeklendi. Yazı tipi boyutları için kullanın
mizanpajlar için her zaman RelativeLayout kullanmalısınız; AbsoluteLayout kullanımdan kaldırılmıştır ve kullanılmamalıdır.
Uygun görüntü formatlarını kullanın - PNG'ye karşı JPEG
Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.
Ancak PNG ve JPEG eşdeğer değildir. Farklı kalitede değiş tokuşları vardır ve PNG her zaman en iyisi değildir:
JPEG , PNG'ye göre% 50'ye kadar dosya boyutu küçültme sunabilir; bu, uygulamanız yoğun görüntü gerektiriyorsa önemlidir
Daha yüksek kaliteli "kayıplı" bir JPEG, aynı dosya boyutu için yüksek oranda sıkıştırılmış "kayıpsız" bir PNG'den daha iyi görünebilir
Hata ayıklama için resimlerinize ve grafiklerinize etiketler ekleyin
Destek ekranları öğesini kullanın
Emülatörlerinizi gerçek cihaz değerleriyle yapılandırın
Geleneksel olarak, masaüstü sistemleri 72ppi (Mac) veya 96ppi (Windows, Linux) olarak görüntülenir. Mobil cihazlarla karşılaştırıldığında, masaüstü ekranlar her zaman düşük yoğunluktadır.
Android emülatörlerinizi her zaman gerçek cihaz değerlerini taklit edecek şekilde yapılandırın ve her zaman cihaz yoğunluğunu taklit edecek şekilde ölçeklendirin.
Eclipse'de, gerçek aygıtlar için değerlerle yapılandırılmış birden çok öykünücü (Eclipse menü çubuğundan Pencere> AVD Yöneticisi> Yeni'yi seçin ) oluşturmak kolaydır :
Öykünücüyü taklit ettiği gerçek cihaz için adlandırın Çözünürlüğü belirtin, Yerleşik genel boyutları kullanmayın Cihaz yoğunluğunu gerçek cihazla eşleşecek şekilde ayarlayın (Donanım bölmesinde Soyutlanmış LCD Özelliğini gerçek yoğunluğa ayarlayın, her zaman bir tamsayı değeri)
Cihazı başlattığınızda her zaman Ekranı gerçek boyuta ölçeklendir öğesini seçin ve inç cinsinden gerçek ekran boyutunu yazın.
Aygıt yoğunluğunu ayarlamazsanız, öykünücü varsayılan olarak düşük yoğunluğa ayarlanır ve her zaman ldpi'ye özgü kaynakları yükler. Çözünürlük (piksel boyutları) doğru olacaktır, ancak yoğunluğa bağlı görüntü kaynaklarınız amaçlandığı gibi görüntülenmeyecektir.
Elbette, yaptığınız hiçbir şey daha düşük yoğunluklu bir masaüstü ekranda daha yüksek yoğunluklu görüntü kalitesi üretemez.
İşte 1 Ekim 2012'de sona eren 7 günlük bir süre boyunca toplanan Veriler. Android platform sürümüyle ilgili en son istatistiği görmek için buraya gidin.
Ekran Boyutuna Göre

Ekran Yoğunluğuna Göre
