Usando una fuente personalizada en el teclado Android LatinIME

Estoy desarrollando un teclado Android modificando el teclado LatinIME para escribir en idiomas que no vienen con Android originalmente. Entonces, estoy tratando de usar una fuente que no sea la fuente predeterminada de Android en EditText campos al escribir con ese teclado.

Tenga en cuenta que NO quiero que se cambie la fuente de las teclas, quiero que la fuente del texto ingresado se cambie de acuerdo con mi fuente.

Ahora, al ingresar texto en un campo EditText, si puedo obtener la referencia de ese campo EditText, la tarea es tan fácil como:

Typeface myTypeface = Typeface.createFromAsset(getAssets(), "fonts/myFont.ttf");
referenceToEditText.setTypeface(myTypeface);

Pero el problema es ¿cómo puedo obtener la referencia al campo EditText (el campo donde estoy ingresando texto)?

¿algunas ideas?

preguntado el 24 de agosto de 12 a las 07:08

Hola, has encontrado una solución? Tengo el mismo problema, para hacerlo, tengo que rootear el Android, hacer un CHMOD 777 en /system/fonts ([link]karuppuswamy.com/wordpress/2009/04/25/…) y luego sobrescriba la fuente para usar la mía. -

2 Respuestas

En la función onCreate de su actividad, obtenga el texto de edición (usando la identificación que configuró en el archivo de diseño XML) y luego llame a setTypeFace:

EditText myEditText = (EditText) findViewById(R.id.myEditText);
myEditText.setTypeface(Constant.APP_FONT);

Respondido 24 ago 12, 08:08

Se supone que no debo establecer la identificación de EditText en el archivo de diseño, de hecho, se supone que no debo tener un archivo de diseño específico. Estoy desarrollando un compañero de teclado - sha256

Bien, creo que lo tengo. Desea forzar una fuente EditText desde el teclado. Espero que no sea eso.. - AlexMok

no hay 'mi texto de edición', cuando empiezo a escribir el cuerpo de un correo electrónico, el campo de texto es de esas aplicaciones de correo electrónico: sha256

¿Estás hablando de obtener la entrada del Edittextfield desde tu teclado? Mira esto:

InputConnection ic = getCurrentInputConnection();

        CharSequence currentText = ic.getExtractedText(new ExtractedTextRequest(), 0).text;

        //Toast.makeText(this, currentText, Toast.LENGTH_LONG).show();

Respondido 23 Abr '15, 09:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.