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

  • AmeriiK_HD

    AmeriiK_HD

    16 AĞUSTOS 2012
  • Epic Tutorials for iPhone, iPad and iOS

    Epic Tutoria

    18 EYLÜL 2011
  • pilslajt

    pilslajt

    20 HAZİRAN 2008