web-dev-qa-db-fra.com

Comment utiliser une police personnalisée dans un projet écrit dans Android Studio

J'essayais d'utiliser une police personnalisée dans Android Studio comme nous l'avons fait dans Eclipse. Mais malheureusement, impossible de savoir où placer le dossier "assets"!

135
Asim Krishna Das

Voici les étapes pour le résoudre:

  1. Allez dans le (dossier du projet)
  2. Ensuite, app> src> main
  3. Créez le dossier 'assets> fonts' dans le dossier main .
  4. Placez votre fichier .ttf dans le dossier des polices.

        AssetManager am = context.getApplicationContext().getAssets();
    
        typeface = Typeface.createFromAsset(am,
                String.format(Locale.US, "fonts/%s", "abc.ttf"));
    
        setTypeface(typeface);
    

    ou essayez de cette façon:

       TextView tx = (TextView)findViewById(R.id.textview1);
    
       Typeface custom_font = Typeface.createFromAsset(getAssets(),  "fonts/abc.ttf");
    
       tx.setTypeface(custom_font);
    
267
Asim Krishna Das

 https://i.stack.imgur.com/i6XNU.png

  1. Sélectionnez Fichier> Nouveau> Dossier> Dossier Actifs.

  2. Cliquez sur terminer

  3. Faites un clic droit sur assets et créez un dossier nommé polices.

  4. Placez votre fichier de police dans actifs _ {> _ {polices

  5. Utilisez le code ci-dessous pour changer la police de votre textView

    TextView textView = (TextView) findViewById(R.id.textView);
    Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/yourfont.ttf");
    textView.setTypeface(typeface);
    
78
Ehsan.R

Il existe de nombreuses façons de définir une famille de polices personnalisée sur le terrain et je l’utilise comme ci-dessous.

Pour ajouter des polices en tant que ressources, procédez comme suit dans Android Studio:

1) Cliquez avec le bouton droit sur le dossier res et accédez à Nouveau> Répertoire de ressources Android. La fenêtre New Resource Directory apparaît.

2) Dans la liste Type de ressource, sélectionnez la police, puis cliquez sur OK.

Remarque: le nom du répertoire de ressources doit être police.

3) Ajoutez vos fichiers de polices dans le dossier des polices .  enter image description here

Ajoutez la police dans la vue souhaitée dans votre fichier XML: 

 enter image description here

Remarque: Mais vous aviez besoin des éléments suivants pour cela:

  1. Android Studio ci-dessus à 3,0 canaries.

  2. Votre activité s'étend à AppCompatActivity.

  3. Mettez à jour votre fichier comme ça:

    compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig {
    minSdkVersion 19 targetSdkVersion 26 versionCode 1 versionName "1.0" testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner" }

    • buildtoolsVersion supérieur à 26 et minimum targetSdkVersion requis 26
  4. Ajoutez des dépendances dans le fichier build.gradle:

    classpath 'com.Android.tools.build:gradle:3.0.0-beta4'

  5. gradle-wrapper.properties:

    distributionUrl = https: //services.gradle.org/distributions/gradle-4.1-all.Zip

30
Vinod Makode

Bonjour, nous avons ici un meilleur moyen d’appliquer des polices sur EditTexts et TextViews sur Android à la fois et de les appliquer à l’ensemble du projet.

Tout d’abord, vous devez créer un dossier de polices. Voici les étapes.

1: Allez dans le (dossier du projet) Puis app> src> main

2: Créez des dossiers nommés «actifs/polices» dans le dossier principal.

3: Placez vos polices dans le dossier des polices. Ici j'ai 'MavenPro-Regular.ttf'

Voici les étapes à suivre pour appliquer des polices personnalisées sur EditText et utiliser cette approche pour appliquer des polices sur chaque entrée.

1: Créer une classe MyEditText (votre nom préféré ...)

2: qui étend EditText 

3: Appliquez votre police

Voici l'exemple de code;

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);
        }
    }

}

Et dans Voici le code comment l'utiliser.

MyEditText editText = (MyEditText) findViewById(R.id.editText);

editText.setText("Hello");

Ou dans votre fichier xml

   <MyEditText
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:gravity="center"
    Android:textColor="#fff"
    Android:textSize="16dp"
    Android:id="@+id/editText"
    />
20
Mohammad Naim Dahee

Je pense qu'au lieu de télécharger le fichier .ttf, nous pouvons utiliser les polices Google. C'est très facile à mettre en œuvre. Il suffit de suivre ces étapes .étape 1) Ouvrez le fichier layout.xml de votre projet et sélectionnez la famille de polices de la vue texte dans les attributs (car la capture d'écran de référence est jointe)  enter image description here

step 2) La famille de polices sélectionnée sélectionne Plus de polices .. option si votre police n'y est pas. alors vous verrez une nouvelle fenêtre s'ouvrira, vous pourrez y taper la police souhaitée et sélectionner la police souhaitée dans cette liste: i.e) Normal, Gras, Italique, etc., comme indiqué dans l'image ci-dessous .  enter image description here

step 3) Vous observerez ensuite la création automatique d’un dossier de polices dans le dossier/res contenant le fichier xml de polices sélectionné. 

 enter image description here

Ensuite, vous pouvez directement utiliser cette famille de polices au format XML. 

      Android:fontFamily="@font/josefin_sans_bold"

ou pro grammaticalement, vous pouvez y parvenir en utilisant 

  Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
  fontText.setTypeface(typeface);
20
Sandeep Sankla

Vous pouvez utiliser easy & simple EasyFonts une bibliothèque tierce pour définir une variété de polices personnalisées sur votre TextView. En utilisant cette bibliothèque, vous ne devriez pas avoir à vous soucier du téléchargement et de l'ajout de polices dans le dossier assets/fonts. Également à propos de la création d’objet Police. Vous serez libre de créer un dossier d'actif aussi.

Simplement:

TextView myTextView = (TextView)findViewById(R.id.myTextView);
myTextView.setTypeface(EasyFonts.robotoThin(this));

Il existe de nombreux types de polices fournis par cette bibliothèque. 

7
vsvankhede

Je veux ajouter ma réponse pour Android-O et Android Studio 2.4

  1. Créez un dossier appelé font sous le dossier res. Téléchargez les différentes polices que vous souhaitez ajouter à votre exemple de projet Polices Google

  2. Dans votre famille de polices utilisateur xml

    exemple :

    <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.Si vous voulez que ce soit de manière programmatique, utilisez le code suivant

Typeface typeface = getResources().getFont(R.font.indie_flower);
textView.setTypeface(typeface);

pour plus d'informations, suivez le lien vers mon article de blog Styles de police pour Android avec Android Studio 2.4

7
Suresh Maidaragi

Avec Support Library 26.0 (et Android O,), les polices peuvent être chargées à partir de ressources facilement avec  enter image description here

Type de police type = ResourcesCompat.getFont (contexte de contexte, int fontResourceId)

Plus d'informations peuvent être trouvées ici.

6
makata

Selon les nouvelles fonctionnalités disponibles dans Android O, les ressources de polices au format XML sont disponibles en tant que nouvelles fonctionnalités.

Pour ajouter des polices en tant que ressources, procédez comme suit dans Android Studio:

1) Cliquez avec le bouton droit sur le dossier res et accédez à Nouveau> Répertoire de ressources Android. La fenêtre New Resource Directory apparaît.

2) Dans la liste Type de ressource, sélectionnez font, puis cliquez sur OK.

Remarque: le nom du répertoire de ressources doit être font.

3) Ajoutez vos fichiers de polices dans le dossier des polices.

Vous pouvez accéder aux ressources de polices à l'aide d'un nouveau type de ressource, la police. Par exemple, pour accéder à une ressource de police, utilisez @ font/myfont ou R.font.myfont.

par exemple. Typeface typeface = getResources().getFont(R.font.myfont); textView.setTypeface(typeface);

4
Dharmishtha
  1. Créez des actifs de dossier dans Projet -> application (ou nom de votre application) -> src -> principal -> clic droit -> Nouveau -> Répertoire.
  2. Créez ensuite un nouveau répertoire à l'intérieur des ressources, appelé "polices".

Pour affecter la police à textView:

TextView textView = (TextView) findViewById(R.id.your_textView);

final Typeface font = Typeface.createFromAsset(context.getAssets(), "fonts/your_font_name");

your_font_name inclut une extension de police.

3
GmloMalo

Si vous êtes très nouveau sur Android comme moi, cela peut être un peu délicat. Assurez-vous d'appeler:

TextView myTextView = (TextView) findViewById(R.id.textView);
Typeface typeface=Typeface.createFromAsset(getAssets(), "fonts/your font.ttf");
myTextView.setTypeface(typeface);

méthode dans une méthode telle que onCreate.

2
user4509901

Android 8.0 (API 26) a introduit de nouvelles fonctionnalités liées aux polices.

1) Les polices peuvent être utilisées comme ressources.

2) Polices téléchargeables.

Si vous souhaitez utiliser des polices externes dans votre application Android, vous pouvez inclure des fichiers de polices dans apk ou configurer des polices téléchargeables.

Incluant les fichiers de police dans APK: vous pouvez télécharger des fichiers de police, les enregistrer dans le fichier res/font, définir la famille de polices et utiliser celle-ci dans des styles différents.

Pour plus de détails sur l’utilisation de polices personnalisées en tant que ressources, voir http://www.zoftino.com/Android-using-custom-fonts

Configuration de polices téléchargeables: définissez la police en fournissant des informations sur le fournisseur de police, ajoutez un certificat de fournisseur de police et utilisez la police dans les styles.

Pour plus de détails sur les polices téléchargeables, voir http://www.zoftino.com/downloading-fonts-Android

1
Arnav Rao

Commencez par créer le dossier assets, puis créez le dossier fonts.

Ensuite, vous pouvez définir font à partir de assets ou directory comme suit:

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);
        }
    }
} 
0
user4813855

Pour les nouveaux lecteurs

Vous pouvez utiliser cette bibliothèque Gloxey Custom Font Views

dépendance à l'échelle

  dependencies{
           compile 'io.gloxey.cfv:custom-font-views:1.0.2'
    }

Comment utiliser?

Créer un dossier assets -> _ {polices} _. Copiez vos polices dans le dossier polices

Utilisez la propriété app: nom_de_commande = "chaîne_de_communication" pour appliquer la police à l'affichage.

Exemple

   <!--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" />
0
Adnan Bin Mustafa

Maintenant, il y a tellement de façons d'appliquer la police, l'une des plus simples est la suivante: 1) Cliquez avec le bouton droit de la souris sur le dossier res pour aller à Nouveau> Répertoire de ressources Android.

2) Dans la liste Type de ressource, sélectionnez la police, puis cliquez sur OK.

3) Placez vos fichiers de polices dans le dossier des polices.

0
Priya

1er ajout du fichier font.ttf sur le dossier de polices. Ajoutez ensuite cette ligne à la méthode onCreate

    Typeface typeface = ResourcesCompat.getFont(getApplicationContext(), R.font.myfont);
    mytextView.setTypeface(typeface);

Et voici mon 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"
        />
0
DEVSHK