¿Puedo cambiar la fuente de salida de un teclado personalizado de Android?
He desarrollado un teclado personalizado android. Necesito cambiar el estilo de fuente de mi texto de salida que realmente se imprimen usando los unicodes.
¿Cómo puedo cambiar el estilo de fuente de la salida de texto de mi teclado en cualquier parte del dispositivo sin tener que cambiar la fuente predeterminada del dispositivo?
- ¿Cómo funciona la fuente de emoji de color de Apple, y hay una versión de Android?
- Cómo volver a fuente predeterminada en TextView
- Android - Hindi Conjuntos de Apoyo?
- En Photoshop el tamaño de fuente de archivo es 20px ¿qué sp será para esto en android? ¿Es igual? Significa 20px = 20sp o algo más?
- El texto textview de Android se corta en los lados con la fuente personalizada
La fuente tampoco está en el dispositivo android, así que tenemos que privide la fuente externa desde la misma aplicación que está desarrollando el teclado.
- Establecer la fuente en tiempo de ejecución, Textview
- Fuente Roboto en mi aplicación para Android
- Cómo evitar el cambio de fuente TextView, cuando cambiamos el estilo de fuente del dispositivo en dispositivos Samsung
- No se puede usar la clase de ejemplo publicada aquí en mi proyecto
- Devanagari / Marathi fuente
- La fuente personalizada en Android se procesa de forma diferente en diferentes API
- Idiomas de indicador en el navegador de Android / GUI (Gujarati) interpretación incorrecta
- Adición de una fuente personalizada al tema en Android
Cambiando el estilo de fuente dentro de la aplicación.
Crear una clase simple llamada
FontOverride
import java.lang.reflect.Field; import android.content.Context; import android.graphics.Typeface; public final class FontsOverride { public static void setDefaultFont(Context context, String staticTypefaceFieldName, String fontAssetName) { final Typeface regular = Typeface.createFromAsset(context.getAssets(), fontAssetName); replaceFont(staticTypefaceFieldName, regular); } protected static void replaceFont(String staticTypefaceFieldName, final Typeface newTypeface) { try { final Field staticField = Typeface.class .getDeclaredField(staticTypefaceFieldName); staticField.setAccessible(true); staticField.set(null, newTypeface); } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } }
Ahora cree otra clase para anular las fuentes nombradas
Solicitud
public final class Application extends android.app.Application { @Override public void onCreate() { super.onCreate(); FontsOverride.setDefaultFont(this, "DEFAULT", "fonts/GeezEdit.ttf"); FontsOverride.setDefaultFont(this, "MONOSPACE", "fonts/GeezEdit.ttf"); /*FontsOverride.setDefaultFont(this, "MONOSPACE", "MyFontAsset2.ttf"); FontsOverride.setDefaultFont(this, "SERIF", "MyFontAsset3.ttf"); FontsOverride.setDefaultFont(this, "SANS_SERIF", "MyFontAsset4.ttf");*/ } }
Ahora agrega este tipo de letra al estilo en el archivo de estilo android en la carpeta de valores
<item name="android:typeface">monospace</item>
Por último mencionar el nombre de la aplicación en el archivo de manifiesto android dentro de la etiqueta de la aplicación
android:name=".Application"
Esto funcionará para cambiar la fuente proporcionada por el usuario en el proyecto o aplicación de Android.