2014-01-09 49 views
50

帖子這樣How to change fontFamily of TextView in Android建議,即Roboto字型的變種,你可以在Android 4.2中styles.xml指定歸結爲以下幾點:如何指定例如。在styles.xml的Roboto介質或的Roboto黑

  • 定期
  • 斜體
  • 粗體
  • 粗體斜體
  • 光斜體
  • 薄斜體
  • 簡明定期
  • 簡明斜體
  • 簡明大膽
  • 簡明粗體斜體

這使得出來的能力,例如使用風格TextViews。 Roboto-Medium或Roboto-Black字體。

但是,爲什麼Google會添加無法用於TextViews樣式的系統寬字體?當然,必須有一些方法來指定styles.xml中的所有Roboto字體(即,不必將字體嵌入爲Assets和在代碼中創建自定義TextView) - 但是如何?

+1

據我知道你必須編寫自定義'TextView'或者你已經使用'字體'庫。 –

回答

4

我建議你使用自定義庫,如Android-RobotoTextViewCalligraphy。 使用其中的一種,您可以使用屬性在xml中設置視圖的字體,以便您可以放入styles.xml中。而且它們可以與4.0之前的Android版本配合使用

81

在Android 5.0上,您可以使用sans-serif-medium來設置Roboto Medium。

值/ styles.xml

<style name="MyStyle"> 
    <item name="android:fontFamily">@string/font_fontFamily_medium</item> 
</style> 

值/ fonts.xml

<string name="font_fontFamily_medium">sans-serif</string> 

值-V21:

此解決方案,從Google iosched 2014採取,在Android預V21使用sans-serif /fonts.xml

<string name="font_fontFamily_medium">sans-serif-medium</string> 
+1

別忘了'font_textStyle_medium' –

+0

只需要提醒一下,您必須添加'<! - 抑制AndroidDomInspection - >'以避免Android Studio給您一個使用整數而不是其中一個標誌的警告可用於'textStyle'。 – CodyEngel

16

感謝雅各布埃裏克森

How to change fontFamily of TextView in Android

android:fontFamily="sans-serif"   // roboto regular 
android:fontFamily="sans-serif-light"  // roboto light 
android:fontFamily="sans-serif-condensed" // roboto condensed 
android:fontFamily="sans-serif-black"  // roboto black 
android:fontFamily="sans-serif-thin"  // roboto thin (android 4.2) 
android:fontFamily="sans-serif-medium" // roboto medium (android 5.0) 

風格:

<style name="AppTheme.DefaultTextView"parent="android:style/Widget.TextView"> 
    <item name="android:textSize">@dimen/text_view_text_size</item> 
    <item name="android:textColor">@color/black</item> 
    <item name="android:fontFamily">sans-serif-light</item> 
    <item name="android:textStyle">normal</item> 
</style> 

在應用主題:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/gray</item> 
    <item name="android:textViewStyle">@style/AppTheme.DefaultTextView</item> 
</style> 
2

支持庫26介紹using fonts in XML,它是向後兼容穿心蓮內酯ID API 14。

要添加字體作爲資源,執行在Android Studio中的下列步驟:

  1. 右鍵單擊res文件夾,然後轉到新建> Android的資源目錄。 出現「新建資源目錄」窗口。

  2. 在資源類型列表中,選擇字體,然後單擊確定。 注意:資源目錄的名稱必須是字體。

Figure 1. Adding the font resource directory

  • 添加您字體文件的字體文件夾中。 下面的文件夾結構生成R.font.dancing_script,R.font.lobsterR.font.typo_graphica
  • Figure 2. Adding the font files in the resource directory

  • 雙擊字體文件預覽文件的字體在編輯器中。
  • Figure 3. Previewing the font file

    要設置字體爲TextView,佈局XML文件中,設置fontFamily中屬性要訪問字體文件。

    <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:fontFamily="@font/lobster"/> 
    

    Android Studio佈局預覽允許您預覽TextView中設置的字體。

    Figure 4. Previewing fonts in layout preview

    要將字體添加到樣式,打開styles.xml,並設置fontFamily中屬性要訪問字體文件。

    <style name="customfontstyle" parent="@android:style/TextAppearance.Small"> 
    <item name="android:fontFamily">@font/lobster</item> 
    

    如果你不希望捆綁在你的應用程序的字體,你可以隨時看看Downloadable Fonts