android:fontFamily için geçerli değerler ve neye eşlenirler?
Bu soruya]1 verilen yanıtta kullanıcı android:fontFamily
ve 12 varyant için değerler listelemektedir (aşağıya bakınız). Bu değerler nereden geliyor? android:fontFamily` dokümantasyonu bu bilgiyi hiçbir yerde listelemiyor (burada ve burada kontrol ettim). Dizeler Android styles.xml dosyasında çeşitli yerlerde listeleniyor, ancak bunlar Roboto yazı tipiyle nasıl eşleşiyor?
Android 4.1 / 4.2'den itibaren aşağıdaki Roboto yazı tipi aileleri mevcut:
android:fontFamily="sans-serif" // roboto regular android:fontFamily="sans-serif-light" // roboto light android:fontFamily="sans-serif-condensed" // roboto condensed android:fontFamily="sans-serif-thin" // roboto thin (android 4.2) android:fontFamily="sans-serif-medium" // roboto medium (android 5.0)
bununla birlikte
android:textStyle="normal|bold|italic"
12 varyant mümkündür:
- Normal
- İtalik
- Kalın
- Bold-italik
- Işık
- Açık italik
- İnce
- İnce italik
- Yoğunlaştırılmış normal
- Yoğunlaştırılmış italik
- Yoğunlaştırılmış kalın
- Yoğunlaştırılmış kalın-italik
Üzerinde çalıştığım uygulamadaki styles.xml
dosyasında birisi bunu font ailesi olarak listelemiş ve bunun yanlış olduğundan oldukça eminim:
<item name="android:fontFamily">Roboto-Regular.ttf</item>
Uygulamamız için temayı doğru bir şekilde ayarlamak (fontFamily'yi doğru bir şekilde kullanmayı da içerir) ve dosyaya bakmadan önce oluşturulan bazı stillerdeki tüm fazlalıkları kaldırmak istiyorum.
Bunlar gerçekten de belgelerde listelenmemiştir. Ancak 'Yazı tipi aileleri' bölümü altında burada bahsedilmektedir. Belge, Android Jelly Bean 4.1 için her yeni genel API'yi listeler.
Evet, bu yanlış. Yazı tipi dosyasını referans almazsınız, yukarıdaki bağlantılı belgede belirtilen yazı tipi adını kullanmanız gerekir. Bu durumda bu olmalıydı:
Bağlantılı cevapta da belirtildiği gibi, 12 varyant mümkündür:
Android Jelly Bean (4.1) - API 16'da eklendi:
Normal (varsayılan):
İtalyanca:
Bold:
Bold-italic:
Işık:
Light-italic:
İnce:
İnce italik:
Yoğunlaştırılmış normal:
Kondense italik:
Koyulaştırılmış kalın:
Yoğunlaştırılmış kalın italik:
Android Lollipop (v5.0) - API 21'de eklendi:
Orta:
Orta-italik:
Siyah:
Hızlı referans için, hepsi bu şekilde görünüyor:
Mevcut yazı tipleri (Oreo'dan itibaren)
Material Design Typography]2 sayfasında bu fontlardan bazılarının demoları ve font ve stil seçimine ilişkin öneriler yer alıyor.
Kod hafiyeleri için:
fonts.xml
Android yazı tiplerinin kesin ve sürekli genişleyen listesidir.Bu yazı tiplerini kullanma
Örneğin
android:fontFamily
veandroid:textStyle
niteliklerini ayarlayın.bu tablodan istenen değerlere ayarlayın:
(Noto Sans bir yedek yazı tipidir; bunu doğrudan belirtemezsiniz)
Not:_ Bu tablo
fonts.xml
'den türetilmiştir. Her yazı tipinin aile adı ve stili fonts.xml'de listelenir, örn.serif-monospace
böylece yazı tipi ailesidir venormal
stildir.Uyumluluk
fonts.xml dosyasının log ve eski system_fonts.xml dosyasına dayanarak, her bir yazı tipinin ne zaman eklendiğini görebilirsiniz:
Bildiğim kadarıyla, xml veya temalarda özel yazı tipleri bildiremezsiniz. Ben genellikle textview'i genişleten ve örnekleme sırasında kendi yazı tiplerini ayarlayan özel sınıflar oluşturuyorum ve bunları düzen xml dosyalarımda kullanıyorum.
Yani:
ve