Android Paint.setTypeface no funciona para la cursiva

El Paint.setTypeface no funciona para cursiva o estoy haciendo algo de forma incorrecta. Puedo crear texto normal, en negrita, monospace y serif, pero no puedo crear texto en cursiva. Siempre parece normal (o en el caso de negrita-itálico, se ve en negrita).

//This will appear monospace paint.setTypeface(Typeface.MONOSPACE); canvas.drawText("foo", 10, 10, paint); //This will appear serif paint.setTypeface(Typeface.SERIF); canvas.drawText("foo", 10, 10, paint); //This will appear bold paint.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); canvas.drawText("foo", 10, 10, paint); //This will NOT appear italic <=== PROBLEM paint.setTypeface(Typeface.defaultFromStyle(Typeface.ITALIC)); canvas.drawText("foo", 10, 10, paint); // This isn't working either <=== PROBLEM paint.setTypeface(Typeface.create(Typeface.SANS_SERIF, Typeface.ITALIC)); 

Así que ahora la pregunta: ¿hay una solución conocida para esto? Mi objetivo simple es dibujar algunas palabras con estilo cursivo

Después de experimentar la misma dificultad, encontré la solución pescando en el código fuente de TextView . Prueba esto:

 paint.setTextSkewX(-0.25f); 

Tengo el mismo problema. Parece que no todos los tipos de caracteres android soporta el estilo ITALIC. Trate de seguir, i'ts trabajado para mí:

 paint.setTypeface(Typeface.create(Typeface.SERIF,Typeface.ITALIC)); 

Funciona bien con SERIF. DEFAULT, MONOSPACE, SANS_SERIF incorpora este estilo.

PS Estoy hablando de la API 10.

Para obtener un modo en cursiva para dispositivos que no lo soportan para una fuente predeterminada, debemos usar el método setTextSkewX. Sin embargo, antes de aplicarlo tenemos que estar seguros de que no se admite un modo en cursiva. Lo conseguimos creando un objeto TextView temporal y midiendo su anchura en ambos modos (NORMAL e ITALIC). Si su ancho es el mismo, significa que el modo ITALIC no es compatible.

Por favor, eche un vistazo a una solución presentada en otra pregunta: ¿ Dispositivos Samsung compatibles con setTypeface (Typeface.Italic)?

  • Android: El tipo de letra se cambia cuando se aplica la contraseña. Escriba en EditarTexto
  • Android Fuente personalizada Spannable Tipo de letra
  • Cómo cambiar el espaciado de letras en una vista de texto?
  • Android 5.0 (API 21) no puede mostrar fuentes / tipos de letra personalizados
  • Android: cómo utilizar la fuente Tamil
  • Cómo puedo mostrar el texto de HIndi en la tableta Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.