C'est le travail pour mon projet, source https://gist.github.com/artem-zinnatullin/7749076
Créez un répertoire de polices dans le dossier Asset, puis copiez votre police personnalisée dans le répertoire de polices, par exemple, j'utilise trebuchet.ttf ;
Créez une classe TypefaceUtil.java ;
import android.content.Context;
import android.graphics.Typeface;
import android.util.Log;
import java.lang.reflect.Field;
public class TypefaceUtil {
public static void overrideFont(Context context, String defaultFontNameToOverride, String customFontFileNameInAssets) {
try {
final Typeface customFontTypeface = Typeface.createFromAsset(context.getAssets(), customFontFileNameInAssets);
final Field defaultFontTypefaceField = Typeface.class.getDeclaredField(defaultFontNameToOverride);
defaultFontTypefaceField.setAccessible(true);
defaultFontTypefaceField.set(null, customFontTypeface);
} catch (Exception e) {
}
}
}
Modifier le thème dans styles.xml ajouter ci-dessous
<item name="android:typeface">serif</item>
Exemple dans mon fichier styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:typeface">serif</item><!-- Add here -->
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
<item name="android:windowActionBarOverlay">true</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
Enfin, dans Activity ou Fragment onCreate, appelez TypefaceUtil.java.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TypefaceUtil.overrideFont(getContext(), "SERIF", "fonts/trebuchet.ttf");
}
2 votes
Cela pourrait vous aider : stackoverflow.com/a/16883281/1329733
2 votes
Vous pouvez désormais spécifier des polices personnalisées directement à partir du XML dans Android studio 3.0. developer.Android.com/guide/topics/ui/look-and-feel/