Fuentes personalizadas en Android

Ya he leído algunos artículos y he buscado en Google, pero no lo hice.

Mi problema es con respecto a la font-face.

En Android, sólo hay 4 atributos en "android:typeface" : Normal, Sans, Serif, Monospace.

Entonces, ¿qué debo hacer para usar "Verdana" en mi aplicación?

Por favor, sugiéreme una forma correcta de usar esta fuente en mi aplicación de Android.

Este es un ejemplo simple … crea una carpeta en la raíz de tu proyecto llamada assets/fonts/ luego pega el archivo de fuente TTF (en este caso Verdana.ttf). A continuación, si desea aplicar esa fuente a, por ejemplo, un TextView , haga lo siguiente:

 import android.graphics.Typeface; 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/Verdana.ttf"); tv.setTypeface(face); } } 

Este ejemplo fue tomado del libro de ComonsWare (escrito por Mark Murphy). Puede descargar el ejemplo completo de GitHub .

Puede utilizar PixlUI en https://github.com/neopixl/PixlUI

Importar su .jar y usarlo en XML

  <com.neopixl.pixlui.components.textview.TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" pixlui:typeface="GearedSlab.ttf" /> 

Puede utilizar la biblioteca de EasyFonts de terceros para establecer variedad de fuentes personalizadas en su TextView . Al utilizar esta biblioteca, no debería preocuparse por descargar y agregar fuentes a la carpeta assets / fonts. También sobre la creación de objetos Typeface.

Esta biblioteca no proporciona Verdana Font cara.

Pero proporcione las siguientes caras de fuente. ¿Qué te gustaría usar?

  • Roboto
  • Droid Serif
  • Robot droid
  • Libertad
  • Diversión Raiser
  • Android Nation
  • Aguacate Verde
  • Reconocimiento

Simplemente:

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

Soy autor de esta biblioteca.

¡¡Bien!!
Esta pregunta es bastante antigua, pero todavía si alguien está buscando la respuesta (en 2015) sobre cómo aplicar la fuente personalizada a todas las vistas de texto a través de código xml ver directamente a continuación:

Primero :
Necesitamos agregar una fuente personalizada dentro de la carpeta de activos dentro del directorio de la aplicación:
.ttf o .otf ambos funcionan en caso de Android

Segundo:
Crear Clase CustomTextView que extiende TextView como a continuación:

 public class CustomTextView extends TextView { public CustomTextView(Context context) { super(context); } public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } public CustomTextView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setTypeface(Typeface tf) { super.setTypeface(FontCache.getFont(getContext(),"fonts/<font_name>")); } } 

Tercero:
FontCache que se utiliza dentro del método setTypeface () de CustomTextView. El propósito es hacer la caché de fuentes básica usando HashMap:

 public class FontCache { private static Map<String,Typeface> fontMap = new HashMap<String,Typeface>(); public static Typeface getFont(Context context,String fontname){ if(fontMap.containsKey(fontname)){ return fontMap.get(fontname); } else{ Typeface tf = Typeface.createFromAsset(context.getAssets(),fontname); fontMap.put(fontname,tf); return tf; } } } 

Cuarto: [Paso final] Todo lo que hacemos ahora es usar CustomTextView directamente dentro de nuestro archivo xml donde sea necesario el texto personalizado textview:

 <<package_name>.CustomTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Custom Font Text" android:textSize ="18sp" android:textAppearance="?android:textAppearanceSmall" android:id="@+id/custom_txt" /> 

Lo sentimos, si esto ya ha sido publicado en algún lugar de SO. Sólo pensé en compartir si ayuda a alguien !!

Para cambiar la fuente (personalizada) de tu aplicación globalmente, echa un vistazo a Calligraphy

Simplemente añada Caligrafía a su gradle.build y añada el siguiente fragmento a su Application.onCreate() :

 CalligraphyConfig.initDefault(new CalligraphyConfig.Builder() .setDefaultFontPath("fonts/MyCustomFont.ttf") .setFontAttrId(R.attr.fontPath) .build() ); 

Y en cada actividad agregue lo siguiente:

 @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)); } 

Eso es todo lo que necesita hacer para cambiar la fuente globalmente en su aplicación. Echa un vistazo a los documentos para más detalles.

 // My example show you how to change fonts into a normal textView or list view create a fonts folder into your assets dir of android and copy your custom font in that .. assets/fonts/monaco.ttf // Font path String fontPath = "fonts/monaco.ttf"; // Loading Font Face Typeface tf = Typeface.createFromAsset(getAssets(), fontPath); // CASE 1 : Inside your list view holder.name = (TextView) convertView .findViewById(R.id.textView_cityName); // set name of text in each row holder.name.setText(CitiesNames.get(position)); // set the type of font you want to set holder.name.setTypeface(tf); // CASE 2 : Inside your text view TextView tx = (TextView)findViewById(R.id.textview1); tx.setTypeface(tf); //vKj 
 TextView textView = (Textview) findViewById(R.id.mytext); Typeface face=Typeface.createFromAsset(getAssets(), "fonts/Verdana.ttf"); textView.setTypeFace(face); 
  • Texto con fuente personalizada y estilo en negrita
  • ¿Qué tipo de fuente debo utilizar para TextView que puede soportar todos los idiomas?
  • Fuente personalizada en android ListView
  • Fuente predeterminada establecida en Android
  • Cómo cambiar el color de la fuente de datepicker?
  • ¿Cómo se crea una fuente personalizada en AndEngine?
  • Diferentes tipos de letra para Algunas actividades utilizando la Biblioteca de Caligrafía
  • Lista predeterminada de fuentes que soporta los sistemas operativos android, ios y blackberry
  • ¿Cómo puedo configurar una fuente personalizada en mi listview?
  • Definir la fuente de la carpeta de activos en el archivo xml android
  • ¿Referencia del CSS a la fuente de Emoji del teléfono?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.