2

Я реализую свою собственную пользовательскую клавиатуру.Пользовательская клавиатура Android с двумя листами (основная и маленькая в правом верхнем углу)

Я использую this tutorial для реализации клавиатуры

<?xml version="1.0" encoding="utf-8"?> 

<Row> 
    <Key android:keyLabel="q" android:keyEdgeFlags="left"/> 
    <Key android:keyLabel="w"/> 
    <Key android:keyLabel="e"/> 
    <Key android:keyLabel="r"/> 
    <Key android:keyLabel="t"/> 
    <Key android:keyLabel="y"/> 
    <Key android:keyLabel="u"/> 
    <Key android:keyLabel="i"/> 
    <Key android:keyLabel="o"/> 
    <Key android:keyLabel="p" android:keyEdgeFlags="right"/> 
</Row> 

Я хочу иметь 2 этикетки на ключевых button.The же, как на изображении ниже (красный):

enter image description here

Как я могу изменить xml xml для этого? Когда мы делаем длинный щелчок на кнопке, мы должны выбрать номера вместо букв

+0

Вы не можете заставить пользователя использовать пользовательскую клавиатуру. –

+0

Я не понимаю, что вы имеете в виду. Я хочу знать, как я могу написать 2 буквы (основной и маленький (красный цвет)) – Tim

+0

привет @ Тим я тоже застрял на той же проблеме, с которой вы сталкиваетесь .... решили ли вы эту проблему .... – Aniket

ответ

4

вам нужно создать KeyboardView расширяет класс и переопределить OnDraw метод, как это:

public class MKeyboardView extends KeyboardView { 
    @Override 
    public void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 

     Paint paint = new Paint(); 
     paint.setTextSize(15); 
     paint.setColor(Color.GRAY); 

     List<Key> keys = getKeyboard().getKeys(); 
     for(Key key: keys) { 
     if(key.codes[0] == 113) 
      canvas.drawText("1", key.x + (key.width/2), key.y + 25, paint); 
     } 
    } 
} 

вы можете изменить положение, изменив х и y.

enjoy :)

+1

Привет @Yakov вы можете помочь мне решить эту проблему, я получаю исключение NullPointerException, когда мой элемент управления достигает строки ниже, canvas.drawText («1», key.x + (key.width/2), key.y + 25 , покрасить); – Aniket