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

  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • Justin Case

    Justin Case

    3 EKİM 2011
  • MikeyMacintosh

    MikeyM

    28 Aralık 2009

İLGİLİ SORU / CEVAPLAR