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

  • bombjack2991

    bombjack2991

    29 HAZİRAN 2008
  • DominicFear

    DominicFear

    30 Kasım 2006
  • TheJoeycool2010

    TheJoeycool2

    12 Temmuz 2010