Uygulamamı çözünürlüğü 480x800 olan bir Pantech cihaz için piksel cinsinden verilen yükseklik ve genişlik ile oluşturdum.
Bir G1 cihazı için yüksekliği ve genişliği dönüştürmem gerekiyor. Bunu dp'ye dönüştürmenin sorunu çözeceğini ve her iki cihaz için de aynı çözümü sağlayacağını düşündüm.
**Pikselleri dp'ye dönüştürmenin kolay bir yolu var mı?
// Converts 14 dip into its equivalent px
float dip = 14f;
Resources r = getResources();
float px = TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP,
dip,
r.getDisplayMetrics()
);
Tıpkı piksellerde olduğu gibi dp kullanmalısınız. Hepsi bu; görüntüden bağımsız pikseller. Orta yoğunluklu bir ekranda kullandığınız sayıları kullanın ve boyut yüksek yoğunluklu bir ekranda sihirli bir şekilde doğru olacaktır.
Ancak, ihtiyacınız olan şey düzen tasarımınızdaki fill_parent seçeneği gibi görünüyor. Görünümünüzün veya denetiminizin üst kapsayıcıda kalan tüm boyuta genişlemesini istediğinizde fill_parent seçeneğini kullanın.
PXve
DP` farklı ancak benzerdir.
DP, yalnızca ekranın fiziksel boyutunu hesaba kattığınızda elde edilen çözünürlüktür. DP
kullandığınızda, düzeninizi farklı piksel
yoğunluklarına sahip benzer boyuttaki diğer ekranlara göre ölçeklendirecektir.
Yine de bazen gerçekten piksel
istersiniz ve kodda boyutlarla uğraşırken, onları dönüştürmediğiniz sürece her zaman gerçek piksel
lerle uğraşırsınız.
Yani bir android cihazda, normal boyutlu hdpi
ekran, 800x480
, DP
de 533x320dir (sanırım). DP
yi piksel /1.5
e dönüştürmek için, *1.5
geri dönüştürmek için. Bu sadece bir ekran boyutu ve dpi
içindir, tasarıma bağlı olarak değişecektir. Sanatçılarımız bana piksel
veriyor ve ben de yukarıdaki 1,5
denklemiyle DP
ye dönüştürüyorum.