Android - Polices personnalisées

Sous Android, vous pouvez définir vos propres polices personnalisées pour les chaînes de votre application. Il vous suffit de télécharger la police requise sur Internet, puis de la placer dans le dossier assets / fonts.

Après avoir placé les polices dans le dossier assets sous le dossier fonts, vous pouvez y accéder dans votre code java via la classe Typeface. Tout d'abord, récupérez la référence de la vue texte dans le code. Sa syntaxe est donnée ci-dessous -

TextView tx = (TextView)findViewById(R.id.textview1);

La prochaine chose que vous devez faire est d'appeler la méthode statique de la classe Typeface createFromAsset()pour obtenir votre police personnalisée à partir des ressources. Sa syntaxe est donnée ci-dessous -

Typeface custom_font = Typeface.createFromAsset(getAssets(), "fonts/font name.ttf");

La dernière chose à faire est de définir cet objet de police personnalisé sur votre propriété TextView Typeface. Vous devez appelersetTypeface()méthode pour faire cela. Sa syntaxe est donnée ci-dessous -

tx.setTypeface(custom_font);

En dehors de ces méthodes, il existe d'autres méthodes définies dans la classe Typeface, que vous pouvez utiliser pour gérer les polices plus efficacement.

Sr. Non Méthode et description
1

create(String familyName, int style)

Créer un objet Typeface avec un nom de famille et des informations de style d'option

2

create(Typeface family, int style)

Créer un objet Typeface qui correspond le mieux à la police existante spécifiée et au style spécifié

3

createFromFile(String path)

Créer une nouvelle police à partir du fichier de police spécifié

4

defaultFromStyle(int style)

Renvoie l'un des objets Typeface par défaut, en fonction du style spécifié

5

getStyle()

Renvoie les attributs de style intrinsèques de la police

Exemple

Voici un exemple illustrant l'utilisation de Typeface pour gérer CustomFont. Il crée une application de base qui affiche une police personnalisée que vous avez spécifiée dans le fichier de polices.

Pour expérimenter cet exemple, vous pouvez l'exécuter sur un appareil réel ou dans un émulateur.

Pas La description
1 Vous utiliserez l'IDE de studio Android pour créer une application Android sous un package com.example.sairamkrishna.myapplication.
2 Téléchargez une police sur Internet et placez-la dans le dossier assets / fonts.
3 Modifiez le fichier src / MainActivity.java pour ajouter le code nécessaire.
4 Modifiez le res / layout / activity_main pour ajouter les composants XML respectifs
5 Exécutez l'application et choisissez un appareil Android en cours d'exécution, installez l'application dessus et vérifiez les résultats

Avant d'entrer dans la partie de code, ajoutez des polices dans le dossier assests de l'explorateur Windows.

Voici le contenu du fichier d'activité principal modifié MainActivity.java.

package com.example.sairamkrishna.myapplication;

import android.graphics.Typeface;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity {
   TextView tv1,tv2;

   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
         
      tv1=(TextView)findViewById(R.id.textView3);
      tv2=(TextView)findViewById(R.id.textView4);

      Typeface face= Typeface.createFromAsset(getAssets(), "font/font.ttf");
      tv1.setTypeface(face);

      Typeface face1= Typeface.createFromAsset(getAssets(), "font/font1.ttf");
      tv2.setTypeface(face1);
   }
}

Voici le contenu modifié du xml activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" 
   android:layout_width="match_parent"
   android:layout_height="match_parent" 
   android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin" 
   tools:context=".MainActivity">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Typeface"
      android:id="@+id/textView"
      android:layout_alignParentTop="true"
      android:layout_centerHorizontal="true"
      android:textSize="30dp" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView2"
      android:layout_below="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textSize="35dp"
      android:textColor="#ff16ff01" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView3"
      android:layout_centerVertical="true"
      android:textSize="45dp"
      android:layout_alignParentRight="true"
      android:layout_alignParentEnd="true"
      android:layout_alignParentLeft="true"
      android:layout_alignParentStart="true" />
      
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials Point"
      android:id="@+id/textView4"
      android:layout_below="@+id/textView3"
      android:layout_alignLeft="@+id/textView3"
      android:layout_alignStart="@+id/textView3"
      android:layout_marginTop="73dp"
      android:textSize="45dp" />
      
</RelativeLayout>

Voici le contenu de la res/values/string.xml.

<resources>
   <string name="app_name">My Application</string>
</resources>

Voici le contenu de AndroidManifest.xml fichier.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name=".MainActivity"
         android:label="@string/app_name" >
         
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
         
      </activity>
      
   </application>
</manifest>

Essayons d'exécuter notre application de polices personnalisées que nous venons de modifier. Je suppose que vous avez créé votreAVDlors de la configuration de l'environnement. Pour exécuter l'application à partir du studio Android, ouvrez l'un des fichiers d'activité de votre projet et cliquez sur l' icône Exécuter dans la barre d'outils. fenêtre -

Comme vous pouvez le voir, le texte qui apparaît sur l'AVD n'a pas de police Android par défaut, mais plutôt la police personnalisée que vous avez spécifiée dans le dossier des polices.

Remarque - Vous devez prendre soin de la taille et du caractère pris en charge par la police lorsque vous utilisez des polices personnalisées.