2012-06-06 15 views

Antwort

9

Sie können die Schriftart in Asset-Ordner erstellen (das heißt Asset/fonts/roboto.ttf).

Dann eine entsprechende Klasse für Ihre Textview erstellen:

// RobotoFont class 
package com.my.font; 
public class RobotoFont extends TextView { 
    public RobotoFont(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 
    public RobotoFont(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 
    public RobotoFont(Context context) { 
     super(context); 
    } 
    public void setTypeface(Typeface tf, int style) { 
     if (style == Typeface.BOLD) { 
      super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Bold.ttf")); 
     } 
     else if(style == Typeface.ITALIC) 
     { 
      super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Italic.ttf")); 
     } 
     else 
     { 
      super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Regular.ttf")); 
     } 
    } 
} 

und schließlich aktualisieren Sie Ihr Layout:

//main.xml 
//replace textview with package name com.my.font.RobotoFont 
<com.my.font.RobotoFont 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingBottom="2dip" /> 
+1

Es wird besser sein, ein generisches benutzerdefiniertes TextView (zum Beispiel TypeFaceTextView) zu erstellen, wo Sie Ihre eigenen Schriftarten über vordefinierte Attribute app: fontFamily angeben können – MikeL

17

mit benutzerdefinierter Font

erster Schritt wird ein holen Schriftart, die Sie verwenden möchten.

Zweitens erstellen Sie einen Ordner Schriftarten in Ihrem Verzeichnis Assets und kopieren Sie Ihre Schriftart dort.

enter image description here

NB: Sie Ihre Schrift überall auf asssets Ordner ablegen kann, aber das ist die Art und Weise, die ich tun !!

Das war es für das Setup, jetzt auf den Code.

Um auf Ihre benutzerdefinierte Schriftart zuzugreifen, müssen Sie die Schrifttype-Klasse im Android SDK verwenden, um eine Schriftart zu erstellen, die Android verwenden kann, und dann alle Anzeigeelemente festlegen, die Ihre benutzerdefinierte Schriftart verwenden müssen. Um dies zu demonstrieren, können Sie beispielsweise zwei Textansichten auf Ihrem Hauptbildschirm erstellen, von denen einer die Standardschrift für Android Sans verwendet und der andere Ihre benutzerdefinierte Schriftart verwendet. Das Layout ist unten:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <TextView 
     android:id="@+id/DefaultFontText" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:textSize="30sp" 
     android:text="Here is some text." /> 
    <TextView 
     android:id="@+id/CustomFontText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="30sp" 
     android:text="Here is some text."> 
     </TextView> 
</LinearLayout> 

Der Code zum Laden und Festlegen der benutzerdefinierten Schriftart ist auch einfach und wird unten angezeigt.

public class Main extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Typeface tf = Typeface.createFromAsset(getAssets(), 
       "fonts/BPreplay.otf"); 
     TextView tv = (TextView) findViewById(R.id.CustomFontText); 
     tv.setTypeface(tf); 
    } 
} 

Sie das Ergebnis sehen:

enter image description here

2

Ab Android Studio 1.5.1 können Sie:

  1. Rechts auf app Verzeichnis klicken
  2. New>Folder (dies ist in der Nähe des unteren Ende der Liste und ist leicht zu übersehen)>Assets Folder
  3. In den meisten Fällen können Sie die verlassen Ordner als Standard> Klicken Sie auf Fertig
  4. Ihre Dateien in den neu erstellten Ordner verschieben assets
Verwandte Themen