2012-04-17 10 views
5

Tengo varias fuentes con diferentes estilos, digamos: "MyFont_bold.otf"Android - Combinación de varios estilos de fuente, en una sola fuente (tipo de letra)

Normalmente "MyFont_default.otf", "MyFont_italic.otf" , me gustaría establecer la fuente de un TextView como esto:

Typeface tf=Typeface.createFromAsset(context.getAssets(), "MyFont_italic.otf"); 
textView.setTypeface(tf); 

y mi pregunta es: ¿es posible combinar todas estas fuentes, en una sola fuente, decir "MyFont", y dependiendo del estilo de Vista de Texto definido en el archivo de diseño XML (cursiva, negrita), la vista de texto que se mostrará en la fuente adecuada?

Respuesta

1

Utilice algún tipo de editor de fuentes para combinar las fuentes en un solo archivo. Muchas fuentes vienen con múltiples estilos en un solo archivo, que es lo que necesitaría en este caso.

+0

Gracias por su respuesta. Al estar limitado por el tiempo, terminé usando fuentes separadas, ya que resultó ser la manera más rápida. (pero no el más elegante) –

+0

Tuve este problema y no pude combinar las fuentes, pero finalmente encontré [esta gran solución] (http://alinberce.wordpress.com/2012/01/25/using-custom-fonts -in-android-bold-italic-regular-you-name-it /) que usa una simple TextView personalizada para anular el método setTypeface. –

2

No tengo la reputación adecuada para comentar, pero puedo confirmar que los enfoques funcionan. Usando FontForge (binaria disponible para Windows):

  1. Abre los archivos múltiples con .otf FontForge (normal, negrita, cursiva).
  2. Asegúrese de seleccionar la ventana que muestra la versión "normal" de la fuente
  3. Uso Archivo> Guardar TTC de esa ventana
  4. Ver que de hecho las otras fuentes secundarias se enumeran en el cuadro de diálogo guardar (negrita, cursiva)
  5. Guardar y utilizar este archivo TTC en Android

lo probé con un texto hTML que se muestra en una TextView: <b>Test</b> Test <i>Test</i> -> "prueba Prueba Prueba "que no funcionaba anteriormente en Android 2.3.7 y con esta fuente ttc las tres versiones del texto se muestran perfectamente.

Como dije, es importante seleccionar la fuente Regular al exportar porque esa es la que usa Android como "predeterminada" (primero hice una exportación desde la versión Negrita y todo fue Negrita).

+0

La fusión de dos otf en un archivo ttc, funcionó para mí (en 2.3.3 y 4.4). Muchas gracias. – Jumpa

+0

¡Esto me ayudó mucho! Gracias por tomarse el tiempo. Debería ser la respuesta aceptada: D – Tharkius

+0

¿Estás seguro de que esto realmente funciona? Para mí, parece que Android usa solo la versión normal y la modifica para aplicar estilos negrita y cursiva. – Oderik

Cuestiones relacionadas