Ich habe versucht, in Android Studio eine benutzerdefinierte Schriftart zu verwenden, wie wir es in Eclipse getan haben. Konnte aber leider nicht herausfinden, wo der Ordner "Assets" abgelegt werden soll!
Ich habe versucht, in Android Studio eine benutzerdefinierte Schriftart zu verwenden, wie wir es in Eclipse getan haben. Konnte aber leider nicht herausfinden, wo der Ordner "Assets" abgelegt werden soll!
Antworten:
Update 2020:
Erstellen Sie einen Ordner mit dem Namen font im Ordner res und kopieren Sie Ihre Schriftart
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/abc_font" />
Für den programmatischen Gebrauch:
textView.setTypeface(ResourcesCompat.getFont(context, R.font.abc_font))
Wählen Sie Datei> Neu> Ordner> Assets-Ordner
Klicken Sie auf Fertig stellen
Klicken Sie mit der rechten Maustaste auf Assets und erstellen Sie einen Ordner mit dem Namen Schriftarten
Fügen Sie Ihre Schriftartdatei in Assets > Schriftarten ein
Verwenden Sie den folgenden Code, um die Schriftart Ihrer textView zu ändern
TextView textView = (TextView) findViewById(R.id.textView);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf");
textView.setTypeface(typeface);
Es gibt viele Möglichkeiten, eine benutzerdefinierte Schriftfamilie für das Feld festzulegen, und ich verwende diese unten.
Führen Sie im Android Studio die folgenden Schritte aus, um Schriftarten als Ressourcen hinzuzufügen:
1) Klicken Sie mit der rechten Maustaste auf den Ordner res und gehen Sie zu Neu> Android-Ressourcenverzeichnis. Das Fenster Neues Ressourcenverzeichnis wird angezeigt.
2) Wählen Sie in der Liste Ressourcentyp die Schriftart aus und klicken Sie auf OK.
Hinweis: Der Name des Ressourcenverzeichnisses muss Schriftart sein.
3) Fügen Sie Ihre Schriftdateien in den Schriftordner ein.
Fügen Sie in der gewünschten Ansicht eine Schriftart in Ihre XML-Datei ein:
Hinweis: Dafür haben Sie jedoch Folgendes benötigt:
Android Studio über 3.0 Kanarienvogel.
Ihre Aktivität erweitert AppCompatActivity.
Aktualisieren Sie Ihre Gradle-Datei folgendermaßen:
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
minSdkVersion 19
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildtoolsVersion
über 26 und mindestens targetSdkVersion
erforderlich 26
classpath 'com.android.tools.build:gradle:3.0.0-beta4'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Ich denke, anstatt die .ttf-Datei herunterzuladen, können wir Google-Schriftarten verwenden. Es ist sehr einfach zu implementieren. Nur Sie müssen diese Schritte befolgen. Schritt 1) Öffnen Sie die Datei layout.xml Ihres Projekts und die ausgewählte Schriftfamilie der Textansicht in Attributen (als Referenz ist ein Screenshot beigefügt).
Schritt 2) Wählen Sie in der Schriftfamilie Weitere Schriftarten aus, wenn Ihre Schrift nicht vorhanden ist. Dann wird ein neues Fenster geöffnet. Dort können Sie die gewünschte Schriftart eingeben und die gewünschte Schriftart aus dieser Liste auswählen, z. B. "Normal", "Fett", "Kursiv" usw. (siehe Abbildung unten).
Schritt 3) Dann werden Sie feststellen, dass automatisch ein Schriftartenordner im Ordner / res mit der ausgewählten XML-Datei für Schriftarten generiert wird.
Dann können Sie diese Schriftfamilie direkt in XML als verwenden
android:fontFamily="@font/josefin_sans_bold"
oder programmatisch können Sie dies erreichen, indem Sie verwenden
Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
fontText.setTypeface(typeface);
Hallo, hier haben wir eine bessere Möglichkeit, Schriftarten auf EditTexts und TextViews auf Android gleichzeitig anzuwenden und im gesamten Projekt anzuwenden.
Zunächst müssen Sie einen Schriftartenordner erstellen. Hier sind Schritte.
1: Gehen Sie zum (Projektordner) Dann App> src> main
2: Erstellen Sie Ordner mit dem Namen "Assets / Fonts" im Hauptordner.
3: Legen Sie Ihre Schriftarten in den Schriftartenordner. Hier habe ich 'MavenPro-Regular.ttf'
Hier sind die Schritte zum Anwenden benutzerdefinierter Schriftarten auf EditText. Mit diesem Ansatz können Sie Schriftarten auf jede Eingabe anwenden.
1: Erstellen Sie eine Klasse MyEditText (Ihr bevorzugter Name ...)
2: erweitert EditText
3: Wenden Sie Ihre Schriftart an
Hier ist Codebeispiel;
public class MyEditText extends EditText {
public MyEditText(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public MyEditText(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public MyEditText(Context context) {
super(context);
init();
}
private void init() {
if (!isInEditMode()) {
Typeface tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/MavenPro-Regular.ttf");
setTypeface(tf);
}
}
}
Und hier ist der Code, wie man es benutzt.
MyEditText editText = (MyEditText) findViewById(R.id.editText);
editText.setText("Hello");
Oder in Ihrer XML-Datei
<MyEditText
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textColor="#fff"
android:textSize="16dp"
android:id="@+id/editText"
/>
Mit Support Library 26.0 (und Android O) können Schriftarten einfach aus folgenden Ressourcen geladen werden:
Typeface typeface = ResourcesCompat.getFont(Context context, int fontResourceId)
Weitere Infos finden Sie hier.
Ich möchte meine Antwort für Android-O und Android Studio 2.4 hinzufügen
Erstellen Sie einen Ordner mit dem Namen font unter dem Ordner res . Laden Sie die verschiedenen Schriftarten herunter, die Sie Ihrem Projektbeispiel hinzufügen möchten. Google-Schriftarten
Innerhalb Ihrer XML-Benutzerschriftfamilie
Beispiel:
<TextView
android:fontFamily="@font/indie_flower"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="@string/sample_text" />
3.Wenn Sie möchten, dass es programmgesteuert ausgeführt wird, verwenden Sie den folgenden Code
Typeface typeface = getResources().getFont(R.font.indie_flower);
textView.setTypeface(typeface);
Für weitere Informationen folgen Sie dem Link zu meinem Blog-Beitrag Schriftstile für Android mit Android Studio 2.4
Gemäß der neuen Funktion in Android O Schriftartenressourcen in XMLGemäß der neuen Funktion als neue Funktion verfügbar.
Führen Sie im Android Studio die folgenden Schritte aus, um Schriftarten als Ressourcen hinzuzufügen:
1) Klicken Sie mit der rechten Maustaste auf den Ordner res und gehen Sie zu Neu> Android-Ressourcenverzeichnis . Das Fenster Neues Ressourcenverzeichnis wird angezeigt.
2) Wählen Sie in der Liste Ressourcentyp die Schriftart aus und klicken Sie auf OK.
Hinweis: Der Name des Ressourcenverzeichnisses muss Schriftart sein.
3) Fügen Sie Ihre Schriftdateien in den Schriftordner ein.
Sie können mithilfe eines neuen Ressourcentyps, der Schriftart, auf die Schriftartenressourcen zugreifen. Verwenden Sie beispielsweise @ font / myfont oder R.font.myfont, um auf eine Schriftartressource zuzugreifen.
z.B. Typeface typeface = getResources().getFont(R.font.myfont);
textView.setTypeface(typeface);
Sie können die einfache EasyFonts- Bibliothek eines Drittanbieters verwenden, um eine Vielzahl von benutzerdefinierten Schriftarten für Ihre Bibliothek festzulegenTextView
. Wenn Sie diese Bibliothek verwenden, müssen Sie sich keine Gedanken über das Herunterladen und Hinzufügen von Schriftarten zum Ordner "Assets / Fonts" machen. Auch über die Erstellung von Schriftobjekten. Sie können auch keinen Asset-Ordner erstellen.
Einfach:
TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));
Es gibt viele Arten von Schriftarten, die von dieser Bibliothek bereitgestellt werden.
1. Fügen Sie die Datei font.ttf zum Schriftartenordner hinzu. Fügen Sie dann diese Zeile in die onCreate-Methode ein
Typeface typeface = ResourcesCompat.getFont(getApplicationContext(), R.font.myfont);
mytextView.setTypeface(typeface);
Und hier ist meine XML
<TextView
android:id="@+id/idtext1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="7dp"
android:gravity="center"
android:text="My Text"
android:textColor="#000"
android:textSize="10sp"
/>
So weisen Sie der Textansicht die Schriftart zu:
TextView textView = (TextView) findViewById(R.id.your_textView);
final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");
Ihr_Font_name enthält die Font-Erweiterung.
Wenn Sie wie ich sehr neu in Android sind, kann dies etwas schwierig sein. Stellen Sie sicher, dass Sie anrufen:
TextView myTextView = (TextView) findViewById(R.id.textView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "fonts/your font.ttf");
myTextView.setTypeface(typeface);
Methode innerhalb einer Methode wie onCreate
.
Android 8.0 (API 26) führte neue Funktionen für Schriftarten ein.
1) Schriftarten können als Ressourcen verwendet werden.
2) Herunterladbare Schriftarten.
Wenn Sie externe Schriftarten in Ihrer Android-Anwendung verwenden möchten, können Sie entweder Schriftdateien in apk aufnehmen oder herunterladbare Schriftarten konfigurieren.
Einschließen von Schriftdateien in APK : Sie können Schriftdateien herunterladen, in res / font filer speichern, die Schriftfamilie definieren und die Schriftfamilie in Stilen verwenden.
Weitere Informationen zur Verwendung benutzerdefinierter Schriftarten als Ressourcen finden Sie unter http://www.zoftino.com/android-using-custom-fonts
Konfigurieren von herunterladbaren Schriftarten : Definieren Sie die Schriftart, indem Sie Details zum Schriftartanbieter angeben, ein Zertifikat für den Schriftanbieter hinzufügen und die Schriftart in Stilen verwenden.
Weitere Informationen zu herunterladbaren Schriftarten finden Sie unter http://www.zoftino.com/downloading-fonts-android
Erst assets
Ordner erstellen , dann fonts
Ordner darin erstellen .
Dann können Sie font
von assets
oder directory
wie folgt einstellen :
public class FontSampler extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
TextView tv = (TextView) findViewById(R.id.custom);
Typeface face = Typeface.createFromAsset(getAssets(), "fonts/HandmadeTypewriter.ttf");
tv.setTypeface(face);
File font = new File(Environment.getExternalStorageDirectory(), "MgOpenCosmeticaBold.ttf");
if (font.exists()) {
tv = (TextView) findViewById(R.id.file);
face = Typeface.createFromFile(font);
tv.setTypeface(face);
} else {
findViewById(R.id.filerow).setVisibility(View.GONE);
}
}
}
Jetzt gibt es so viele Möglichkeiten, Schriftarten anzuwenden. Eine der einfachsten Möglichkeiten ist folgende: 1) Klicken Sie mit der rechten Maustaste auf den Ordner res und gehen Sie zu Neu> Android-Ressourcenverzeichnis.
2) Wählen Sie in der Liste Ressourcentyp die Schriftart aus und klicken Sie auf OK.
3) Legen Sie Ihre Schriftdateien in den Schriftordner.
Fügen Sie Ihre Schriftarten zum Assets-Ordner in App / src / main / Assets hinzu. Erstellen Sie eine benutzerdefinierte Textansicht wie folgt:
class CustomLightTextView : TextView {
constructor(context: Context) : super(context){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet): super(context, attrs){
attachFont(context)
}
constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
attachFont(context)
}
fun attachFont(context: Context) {
this.setTypeface(FontCache.getInstance().getLightFont(context))
}
}}
FontCache hinzufügen: Damit Sie nicht immer wieder eine Schrift erstellen müssen, wie:
class FontCache private constructor(){
val fontMap = HashMap<String,Typeface>()
companion object {
private var mInstance : FontCache?=null
fun getInstance():FontCache = mInstance?: synchronized(this){
return mInstance?:FontCache().also { mInstance=it }
}
}
fun getLightFont(context: Context):Typeface?{
if(!fontMap.containsKey("light")){
Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf");
fontMap.put("light",Typeface.createFromAsset(context.getAssets(),"Gotham-Book.otf"))
}
return fontMap.get("light")
}
}}
Und du bist fertig!
PS Von Android O können Sie direkt Schriftarten hinzufügen.
Legen Sie Schriftarten in den Asset-Ordner und wenden Sie die Schriftfamilie an: '' Ihre Schriftarten
Für neue Leser
Sie können diese Bibliothek Gloxey Custom Font Views verwenden
Gradle-Abhängigkeit
dependencies{
compile 'io.gloxey.cfv:custom-font-views:1.0.2'
}
Wie benutzt man?
Ordner- Assets erstellen -> Schriftarten . Kopieren Sie Ihre Schriftarten in den Schriftartenordner .
Verwenden Sie die Eigenschafts- App: font_name = "font_name_string" , um die angezeigte Schriftart anzuwenden.
Beispiel
<!--Font Names in srings.xml-->
<string name="aadhunik">aadhunik.ttf</string>
<string name="kung_fool">kungfool.ttf</string>
<string name="skrova">skrova.otf</string>
<string name="painting_in_the_sun_light">painting_in_the_sun_light.ttf</string>
<!--Include views in layout.xml-->
<io.gloxey.cfv.CFTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Aadhunik"
android:textColor="#ff00"
android:textSize="40sp"
app:font_name="@string/aadhunik" />
<io.gloxey.cfv.CFButton
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Kung Fool"
android:textColor="#154748"
app:font_name="@string/kung_fool" />
<io.gloxey.cfv.CFEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Hello world"
android:textSize="30sp"
app:font_name="@string/skrova" />
<io.gloxey.cfv.CFCheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Painting In The Sun Light"
android:textSize="30sp"
app:font_name="@string/painting_in_the_sun_light" />