¿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?
- Ignorar el tamaño de fuente mínimo de la aplicación de Gmail de Android (Newsletter)
- Fuente Roboto en mi aplicación para Android
- Aplicar dos estilos de fuente diferentes a un TextView
- Cómo crear fuentes personalizadas en android studio
- Actualizar la altura de TextView después de establecer la fuente con setTypeface en Android
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.
- Las fuentes @ font-face no se muestran de forma consistente en todas las versiones de Android
- Usar fuente personalizada en el atributo de estilo
- Metaio sdk (openGL) frena la representación de fuente y de imagen
- Cómo evitar el cambio de fuente TextView, cuando cambiamos el estilo de fuente del dispositivo en dispositivos Samsung
- ¿Cómo puedo configurar mi propio tipo de letra en el renderizador AChartEngine?
- El texto textview de Android se corta en los lados con la fuente personalizada
- ¿Cómo corregir fallback de la fuente de TextView?
- ¿Cómo cambiar la fuente de la llave del teclado de 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.