SORU
19 Temmuz 2010, PAZARTESİ


Android kaynaklara kayan nokta değeri Ekle/değerler

Benim TextViews çizgiler arasında küçük bir boşluk android:lineSpacingMultiplierkullanarak eklemek için çalışıyorum documentation:

Satırları arasına fazladan boşluk metin, çarpanı olarak.

Bir kayan nokta değeri, böyle olmalı "". 1.2 gibi

Birkaç farklı TextViews bu kullanıyorum benim kaynakları için küresel bir boyut/değer eklemek istiyorum, ama eğer varsa bile, kullanmak için hangi bilmiyorum. Bana mantıklı hepsi resource types denedim ama hiç biri işe yaramadı.

Yapmak istediğim şey bunun gibi bir şey olacaktır:

<resources>
    <dimen name="text_line_spacing">1.4</dimen>
</resources>

Edit: android:lineSpacingExtra farkındayım eklenen bir ünite ile bir boyut ihtiyacı olan, ama mümkünse android:lineSpacingMultiplier kullanmak istiyorum.

CEVAP
8 Ocak 2012, Pazar


Bir çözüm var:

<resources>
    <item name="text_line_spacing" format="float" type="dimen">1.0</item>
</resources>

Bu şekilde, yüzer numaranızı @ölçü altında olacak. Diğer" ve/veya "tip", nerede formatı içindir: değiştiriciler. "biçiminde kullanabilirsiniz dikkat edin

= Veri türü kapsayan biçimi:

  • yüzer
  • boolean
  • kesir
  • tamsayı
  • ...

ve türünü gösterir:

Type = kaynak türü (R. ALMANYA ile başvuruyor.ad):

  • renk
  • ölçü
  • string
  • stil
  • vb...

Kaynak kodundan almak için bu parçacığını kullanmanız gerekir:

TypedValue outValue = new TypedValue();
getResources().getValue(R.dimen.text_line_spacing, outValue, true);
float value = outValue.getFloat();  

Bu kafa karıştırıcı (getResources().getDimension(R.dimen.text_line_spacing) gibi ara beklediğiniz), ama dimensions özel tedavi ve saf "" sayı geçerli bir boyut değildir. şamandıra Android olduğunu biliyorum


Ayrıca, "hack" boyuta yüzer, ama . küçük var ^strong>UYARDIbugerçekten hackşamandıra aralığı ve hassas kaybetmek için riske vardır , ve.

<resources>
    <dimen name="text_line_spacing">2.025px</dimen>
</resources>

ve kod, akıp alabilirsiniz

float lineSpacing = getResources().getDimension(R.dimen.text_line_spacing);

bu durumda, lineSpacing beklenen değeri gibi 2.024993896484375 2.025 değil.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Kindness

    Kindness

    23 Ocak 2006
  • SegaAmerica

    SegaAmerica

    5 Mart 2008
  • SPBedition

    SPBedition

    24 HAZİRAN 2013