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 «actifs»!
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 «actifs»!
Réponses:
Mise à jour 2020:
Créez un dossier nommé police dans le dossier res et copiez votre police
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/abc_font" />
Pour une utilisation programmatique:
textView.setTypeface(ResourcesCompat.getFont(context, R.font.abc_font))
Sélectionnez Fichier> Nouveau> Dossier> Dossier d'actifs
Cliquez sur Terminer
Faites un clic droit sur les actifs et créez un dossier appelé polices
Mettez votre fichier de polices dans actifs > polices
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);
Il existe de nombreuses façons de définir une famille de polices personnalisée sur le terrain et j'utilise comme ci-dessous.
Pour ajouter des polices en tant que ressources, effectuez les étapes suivantes dans Android Studio:
1) Cliquez avec le bouton droit sur le dossier res et allez dans Nouveau> répertoire de ressources Android. La fenêtre Nouveau répertoire de ressources 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 de polices.
Ajoutez la police dans la vue souhaitée dans votre fichier xml:
Remarque: Mais vous avez besoin des éléments suivants pour cela:
Android Studio ci-dessus à 3.0 canary.
Votre activité étend AppCompatActivity.
Mettez à jour votre fichier Gradle 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
ci-dessus à 26 et minimum targetSdkVersion
requis 26
classpath 'com.android.tools.build:gradle:3.0.0-beta4'
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
Je pense qu'au lieu de télécharger un fichier .ttf, nous pouvons utiliser des polices Google. C'est très facile à mettre en œuvre. il vous suffit de suivre ces étapes. étape 1) Ouvrez layout.xml de votre projet et sélectionnez la famille de polices de vue texte dans les attributs (pour référence, la capture d'écran est jointe)
étape 2) Dans la famille de polices, sélectionnez l'option Plus de polices .. si votre police n'y est pas. alors vous verrez une nouvelle fenêtre s'ouvrira, là vous pouvez taper votre police requise et sélectionner la police désirée dans cette liste ie) Regular, Bold, Italic etc. comme indiqué dans l'image ci-dessous.
étape 3) Ensuite, vous observerez qu'un dossier de polices sera généré automatiquement dans le dossier / res contenant le fichier xml des polices sélectionnées.
Ensuite, vous pouvez directement utiliser cette famille de polices en xml comme
android:fontFamily="@font/josefin_sans_bold"
ou programmatiquement, vous pouvez y parvenir en utilisant
Typeface typeface = ResourcesCompat.getFont(this, R.font.app_font);
fontText.setTypeface(typeface);
Bonjour, nous avons un meilleur moyen d'appliquer des polices sur EditTexts et TextViews sur Android à la fois et de les appliquer dans tout le 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 «assets / fonts» dans le dossier principal.
3: Mettez vos polices dans le dossier des polices. Ici, j'ai 'MavenPro-Regular.ttf'
Voici les étapes pour appliquer des polices personnalisées sur EditText et en utilisant cette approche, vous pouvez appliquer des polices sur chaque entrée.
1: Créez 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"
/>
Avec Support Library 26.0 (et Android O), les polices peuvent être chargées facilement à partir d'une ressource avec:
Typeface typeface = ResourcesCompat.getFont(Context context, int fontResourceId)
Plus d'informations peuvent être trouvées ici.
Je souhaite ajouter ma réponse pour Android-O et Android Studio 2.4
Créez un dossier appelé police sous le dossier res . Téléchargez les différentes polices que vous vouliez ajouter à votre projet exemple de polices Google
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
Selon la nouvelle fonctionnalité disponible dans Android O, les ressources de polices en XML sont disponibles en tant que nouvelle fonctionnalité.
Pour ajouter des polices en tant que ressources, effectuez les étapes suivantes dans Android Studio:
1) Cliquez avec le bouton droit sur le dossier res et allez dans Nouveau> répertoire de ressources Android . La fenêtre Nouveau répertoire de ressources 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 de polices.
Vous pouvez accéder aux ressources de police à l'aide d'un nouveau type de ressource, 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);
Vous pouvez utiliser la bibliothèque tierce EasyFonts facile et simple 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 sur la création d'objets Typeface. Vous serez également libre de créer un dossier d'actifs.
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.
1er ajouter le fichier font.ttf sur le dossier de polices. Ajoutez ensuite cette ligne dans 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"
/>
Pour attribuer 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 l'extension de police.
Si vous êtes 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
.
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 soit inclure des fichiers de polices dans apk, soit configurer des polices téléchargeables.
Y compris les fichiers de polices dans l'APK : vous pouvez télécharger des fichiers de polices, les enregistrer dans res / font filer, définir la famille de polices et utiliser la famille de polices dans les styles.
Pour plus de détails sur l'utilisation des polices personnalisées en tant que ressources, consultez http://www.zoftino.com/android-using-custom-fonts
Configuration des polices téléchargeables : définissez la police en fournissant les détails du fournisseur de polices, ajoutez un certificat de fournisseur de polices et utilisez la police dans les styles.
Pour plus de détails sur les polices téléchargeables, consultez http://www.zoftino.com/downloading-fonts-android
Créez d'abord un assets
dossier, puis créez-y un fonts
dossier.
Ensuite, vous pouvez définir à font
partir de assets
ou directory
comme ci-dessous:
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);
}
}
}
Maintenant, il y a tellement de façons d'appliquer la police, l'un des moyens les plus simples est comme ceci, 1) Cliquez avec le bouton droit sur le dossier res et allez dans Nouveau> répertoire de ressources Android.
2) Dans la liste Type de ressource, sélectionnez la police, puis cliquez sur OK.
3) Mettez vos fichiers de polices dans le dossier des polices.
Ajoutez vos polices au dossier assets dans app / src / main / assets pour créer une vue de texte personnalisée comme celle-ci:
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))
}
}
Ajoutez FontCache: pour que vous n'ayez pas à créer une police encore et encore comme:
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")
}
}
Et vous avez terminé!
PSDepuis android O, vous pouvez directement ajouter des polices.
mettez les polices dans le dossier des ressources puis appliquez fontfamily: '' vos polices
Je ne pouvais pas charger les polices parce que j'avais nommé mon fichier de polices Poppins-Medium.tff, le renommer en poppins_medium.tff fonctionnait pour moi. Le reste des étapes est resté le même:
Pour les nouveaux lecteurs
Vous pouvez utiliser cette bibliothèque Gloxey Custom Font Views
dépendance gradle
dependencies{
compile 'io.gloxey.cfv:custom-font-views:1.0.2'
}
Comment utiliser?
Créez des ressources de dossier -> polices . Copiez vos polices dans des polices dossier des .
Utilisez l' application de propriété : font_name = "font_name_string" pour appliquer la police sur la vue.
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" />