Wo in res-Ordner sollte ich meine Schriftart-Datei (TTF)?Wo sollte ich die Schriftartendatei in Android-Ressourcen platzieren?
Antwort
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" />
Nicht in der res Ordner, aber überall in der Vermögenswerte Ordner. Dann können Sie die createFromAsset
statische Methode von Typeface
verwenden:
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.
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:
Ab Android Studio 1.5.1 können Sie:
- Rechts auf
app
Verzeichnis klicken New
>Folder
(dies ist in der Nähe des unteren Ende der Liste und ist leicht zu übersehen)>Assets Folder
- In den meisten Fällen können Sie die verlassen Ordner als Standard> Klicken Sie auf Fertig
- Ihre Dateien in den neu erstellten Ordner verschieben
assets
Sie können fonts
Ordner in resources
erstellen und direkt in xml verwenden, da Android O.
Auschecken neu Android O - fonts feature.
- 1. Wo sollte ich die DLL platzieren?
- 2. Wo sollte ich Database.EnsureCreated platzieren?
- 3. MEF: Wo sollte ich den CompositionContainer platzieren?
- 4. Wo sollte ich AngularJS Factories & Services platzieren?
- 5. Wo sollte ich IBOutlets und IBActions platzieren?
- 6. Wo sollte ich zusätzliche Klassen in meiner MVC-Anwendung platzieren
- 7. Wo sollte ich Recaptcha.dll in meiner asp.net mvc-Anwendung platzieren?
- 8. Symfony 2 - Wo sollte ich eine Utility-Klasse platzieren?
- 9. Wo sollte ich öffentliche statische void Main platzieren?
- 10. Wo sollte ich mein Domänenmodell platzieren, um Modellzuordnungscode anzuzeigen?
- 11. Wo sollte ich meine Einstellungen und Profile für die Verwendung mit IPython/Jupyter 4.0 platzieren?
- 12. Wo Validierungscode platzieren
- 13. Wo/wie Dateien platzieren
- 14. Wo sollte ich die Iostream-Klasse verwenden?
- 15. wo ressourcenspezifische Logik zu platzieren
- 16. Symfonie. Wo sollte ich komplexe Anfragen stellen?
- 17. Wo sollte ich meine BaseActivity-Klasse finden?
- 18. Wo ist die Geschäftslogik in Angular2 zu platzieren?
- 19. Wo sollte ich Bibliotheken von Drittanbietern installieren?
- 20. Wo sollte ich Navigationscode eingeben?
- 21. Wo sollte ich Entwicklungstools installieren?
- 22. Wo sollte ich Dateien speichern
- 23. Wo sollte ich Datenbankdateien speichern?
- 24. C++ wo zu platzieren enthält
- 25. Wo sollte ich einen Check platzieren, der eine Anfrage umleiten kann?
- 26. MVVM - Wo sollte ich Code platzieren, der XAML dynamisch generiert und lädt?
- 27. Wo sollte ich gradle.properties in Jenkins setzen
- 28. wo den Bilderordner in Kohana PHP platzieren?
- 29. Wo in express.js allgemeine Funktionen platzieren?
- 30. wo sollte ich die Erweiterung = mcrypt.so in php.ini hinzufügen?
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