SORU
10 ŞUBAT 2010, ÇARŞAMBA


Java kod DİP boyutları belirtmek için doğru yolu nedir?

XML düzenleri arayüzü benim elemanlarının boyutları parçası aşağıdaki gibi DİPs kullanarak ayarlamak mümkün olduğunu buldum

android:layout_width="10dip"

Ama tüm Java arayüzü tamsayı bağımsız değişken olarak alır ve DİPs boyutları belirtmek için yolu yoktur. Bu hesaplamak için doğru yolu nedir?

DisplayMetrics sınıf özelliği yoğunluk kullanmak zorunda olduğumu düşündüm ama bu doğru bir yol mu?

Bu formül her zaman doğru olmak güvenebilir miyim?

piksel * DisplayMetrics.yoğunluk = dip

Dönüşüm bir yerde Android için faydalı bir işlevi var mı?

CEVAP
21 NİSAN 2010, ÇARŞAMBA


Bu yardımcı programı, varolan bir inşa yöntemi TypedValue.applyDimensions(int, float, DisplayMetrics) denir.

Kullanmak için:

// returns the number of pixels for 123.4dip
int value = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 
                     (float) 123.4, getResources().getDisplayMetrics());

Bununla COMPLEX_UNIT_SP, COMPLEX_UNIT_PT de dahil olmak üzere tüm sayfada bulunan yukarıda bağlantılı kullanabileceğiniz diğer türleri listesi var. Eğer (int) typecast çıkarmak, kayan nokta sayısını elde edersiniz.

Ben de aynı sorunla karşılaştı ve kodu ile kurcalarken bunu buldum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • aki6336

    aki6336

    14 AĞUSTOS 2008
  • уσ ρℓz sυв ιℓℓ sυв вαcқ

    уσ ρℓz

    14 EKİM 2010
  • WePlayWeWatch

    WePlayWeWatc

    3 Temmuz 2013