2011-01-26 15 views

Respuesta

4

encontré una respuesta: Implementado onDraw ...

@Override 
public void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    try{ 
    onBufferDraw(); 
    }catch(Exception ex){ 

    } 
    if (mBuffer!=null) 
     canvas.drawBitmap(mBuffer, 0, 0, null); 
} 
+0

¿Podría haber una mejor manera? Este enfoque parece demasiado trabajo e implica la modificación de muchos vars/métodos privados que podrían romperse fácilmente en futuras versiones de Android. ¿Podría pasar por la ruta de usar imágenes a través de "keyIcon", ya que parece ser la manera más limpia? –

+0

@paul_sns Ojalá hubiera una mejor manera, pero ahora estoy acostumbrado. No he visto demasiados cambios en las versiones más nuevas. – Heidar

+0

podría extender la respuesta por favor? No entiendo cómo el onDraw ayudaría a cambiar la fuente. – Raykud

1

Bueno, esa es una pregunta muy amplia. Puedo decirte cómo configurar un tipo de letra diferente; cómo trabajas en tu aplicación de teclado depende de ti.

Coloque una fuente (.ttf o .otf) en la carpeta de activos, y utilizar el siguiente código (suponiendo una fuente llamada "myfont.ttf" y un TextView con un id de "llave"):

Typeface myFont = Typeface.createFromAsset(getAssets(), "myfont.ttf"); 
TextView key = (TextView)findViewById(R.id.key); 
key.setTypeface(myFont); 

Recordatorio: No olvide verificar la licencia de la fuente que está utilizando. La mayoría no permite la redistribución sin compensación. Una fuente con licencia libre que puede utilizar es Bitstream Vera Sans.

+0

Gracias por la respuesta, pero estoy cambiando la muestra de SoftKeyboard y no tengo TextView para configurar Typeface en ella. Solo tengo un InputMethodService, un teclado, una clave y un KeyboardView. – Heidar

+0

Interesante. Sí, investigando más, no veo * una manera de modificarlo. Sin embargo, las aplicaciones como SwiftKey tienen un tipo de letra diferente para sus claves, por lo que es posible. Desafortunadamente no tengo una mejor respuesta para ti. – kcoppock

+0

Una solución es colocar una imagen para cada tecla, pero lleva mucho tiempo. Gracias de todos modos y por favor dime si encontraste algo. – Heidar

4

Una solución es utilizar keboardView.java en lugar de android.inputmethodservice.KeyboardView.

También necesita cambiar paint.setTypeface(Typeface.DEFAULT_BOLD) a paint.setTypeface(my font) y debe agregar attrs.xml a su proyecto.

+0

Gracias por su ayuda – Heidar

+0

cómo agrego attrs.xml – Fay007

Cuestiones relacionadas