2015-10-13 3 views
0

je veux créer un clavier personnalisé dans android. Je veux utiliser ce code http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615[ ^]créer un clavier arabe personnalisé pour android

mais maintenant je veux faire clavier arabe, mais j'ai problème avec cela parce que le code ASCII arabe est en deux parties et le XML ne supporte pas que -je utiliser ce site pour convertir: http://www.asciitohex.com/[ ^]

par exemple 'ش' est le code '216 180', mais je ne peux pas l'utiliser dans ce XML:

Répondre

1

pour l'arabe, persane, etc (utf-8), à claviers personnalisés, vous devez utiliser vous characeter en Java classe à la place, l'algorithme est de trouver le code clé qui est défini en XML et d'utiliser ils égal cha racter en arabe avec qui,

comme le tutoriel ci-dessus, ils code pour « ش » caractère devrait ressembler à ceci:

public void onKey(int primaryCode, int[] keyCodes) { 
    InputConnection ic = getCurrentInputConnection(); 
    playClick(primaryCode); 
    switch (primaryCode) { 
    case Keyboard.KEYCODE_DELETE: 
     ic.deleteSurroundingText(1, 0); 
     break; 
    case Keyboard.KEYCODE_SHIFT: 
     caps = !caps; 
     keyboard.setShifted(caps); 
     kv.invalidateAllKeys(); 
     break; 
    case Keyboard.KEYCODE_DONE: 
     ic.sendKeyEvent(new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_ENTER)); 
     break; 
    default: 
     char code = (char) primaryCode; 
     if (Character.isLetter(code) && caps) { 
      code = Character.toUpperCase(code); 
     } 
     if (code == 97) { 
      ic.commitText(" ش",1);// your character 

     } else { 
      ic.commitText(String.valueOf(code), 1); 
     } 
    } 
}