Quanto as teclas:
Basta você saber o código (keycode) das outras que não sejam numéricas.
Outra forma de trabalhar isso é sobrepondo o método traverse da classe CustomItem. Eu consegui trabalhar algumas teclas a partir dele… é bem chatinho de trabalhar com ele, demorei entendê-lo.
Veja um exemplo:
/*Abstract da CustomItem. Movimena uma lista para baixo de acordo com as teclas precionadas.*/
public boolean traverse( int dir, int viewportWidth, int viewportHeight, int[] visRect_inout ){
switch(dir){
case Canvas.UP:
case Canvas.LEFT:
if( itemSelecionado > 0 ){
--itemSelecionado;
notifyStateChanged();
} else {
itemSelecionado = num-1;
notifyStateChanged();
}
break;
case Canvas.DOWN:
case Canvas.RIGHT:
if( itemSelecionado < num-1 ){
++itemSelecionado;
notifyStateChanged();
} else {
itemSelecionado = 0;
notifyStateChanged();
}
break;
case NONE:
return true;
}
makeSelectedVisible();
repaint();
return true;
}
Repare que com a classe Canvas eu consigo capturar outras teclas como Canvas.DOWN, Canvas.UP, etc.
Quanto ao tamanho das fontes:
Há uma forma de utilizar a fonte do tamanho que você deseja em classes herdadas da CustomItem ou da Canvas… porém é complicado, você terá que fazer uma imagem com todos os caracteres do tamanho e estilo que você deseja, de preferência com a mesma largura para todos. Depois crie uma classe Fonte onde no construtor você carrega a imagem que contém todos os caracters. Crie um método getCaracter(char c), neste método ponha um switch com case para cada caracter e em cada case você recorta o caracter desejado da imagem que contém todos os caracteres. Para fazer o recorte da imagem você deve saber em qual pixel começa cada caracter e qual sua largura e altura e especificar isso nos cases… daí você pode fazer diversas outras coisas, estou te dando a dica inicial.
Também pode fazer uma imagem com todos os caracteres na mesma sequência que a tabela ASCII e capturar a imagem do caracter desejado passando como atributo o byte do caracter que você quer… e por aí vai. Ja fiz das duas formas, esta segunda é bem mais eficiente. Tem um link da Sun que ensina isso, se eu achar postarei aqui.