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

  • H3Ctic (old channel)

    H3Ctic (old

    23 Mart 2011
  • MrMimoB

    MrMimoB

    11 NİSAN 2011
  • TV and Lust

    TV and Lust

    26 HAZİRAN 2006