Usar fuente personalizada en el atributo de estilo

Lo que quiero lograr es agregar atributo de style a mi archivo axml con la fuente personalizada cargada desde el Asset .

Sé que puedo cargar incorporado fontface como este ( style.xml ):

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="CodeFont" parent="@android:style/TextAppearance.Medium"> <item name="android:typeface">monospace</item> </style> </resources> 

Y usarlo ( Main.axml ):

 <TextView style="@style/CodeFont" local:MvxBind="Text Hello" /> 

Sé que puedo también crear MyCustomTextView extiende TextView y que fija la fuente por el método de SetTypeface , pero quisiera utilizar la fuente de encargo en atributo del style .

Así que algo como:

  <resources> <style name="CodeFont" parent="@android:style/TextAppearance.Medium"> <item name="android:typeface">MyCustomFontLoadedFromAsset</item> </style> </resources> 

¿Es posible (y cómo hacerlo)?

No hay manera de hacerlo directamente de la caja. Hay una biblioteca llamada Caligrafía que le permitirá hacerlo. Funcionará en API 7+

También he visto un truco usando la reflexión para anular serif / sans para que pueda definir los de su styles.xml : ¿Es posible establecer una fuente personalizada para toda la aplicación? , Aunque yo recomendaría el primer enfoque.

 public class MyApplication extends Application { private Typeface normalFont; private Typeface boldFont; ... /** * Fonts */ public void setTypeface(TextView textView) { if(textView != null) { if(textView.getTypeface() != null && textView.getTypeface().isBold()) { textView.setTypeface(getBoldFont()); } else { textView.setTypeface(getNormalFont()); } } } private Typeface getNormalFont() { if(normalFont == null) { normalFont = Typeface.createFromAsset(getAssets(),"fonts/my_font.ttf"); } return this.normalFont; } private Typeface getBoldFont() { if(boldFont == null) { boldFont = Typeface.createFromAsset(getAssets(),"fonts/my_font_bold.ttf"); } return this.boldFont; } } 
 String fontPath = "PT_Sans-Narrow-Web-Regular.ttf"; holder.desc = (TextView) row.findViewById(R.id.msgdesc); // Loading Font Face Typeface tf = Typeface.createFromAsset( row.getContext().getAssets(), fontPath); // Applying font holder.desc.setTypeface(tf); 
 info1 = (TextView) findViewById(R.id.textView1); Typeface font = Typeface.createFromAsset(this.getAssets(), "fonts/KeepCalm-Medium.ttf"); info1.setTypeface(font); info1.setTextColor(Color.parseColor("#FFFFFF")); 
  • Xamarin AndroidManifest.xml es diferente al de Visual Studio
  • Xamarin - Android - Visual Studio - No se pudo iniciar la aplicación
  • ¿Qué es EGL y GL mtrack en Android Memory Dump
  • Error de compilación de Android C # Xamarin
  • Cierra / oculta el teclado suave de Android en MvxFragment
  • Xamarin.forms mezclando ContentPage y la actividad de Android
  • ¿Por qué Xamarin.Forms es tan lento al mostrar algunas etiquetas (especialmente en Android)?
  • Xamarin extraña excepción en VS2015
  • ¿Puede Xamarin manejar acelerómetro de sacudidas en Android?
  • ¿Cómo ejecutar pruebas de unidad para proyectos de biblioteca de Xamarin (iOS y Android)?
  • Instale el paquete: 'Android Support Library'
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.