2016-03-10 2 views
0

Я знаю, как создать клавиатуры из файла XML, выглядит следующим образом:Как создать пользовательскую клавиатуру из файла макета в Android?

<Row> 
<Key   android:codes="113"android:keyLabel="q"android:keyEdgeFlags="left"/> 
<Key android:codes="119" android:keyLabel="w"/> 
<Key android:codes="101" android:keyLabel="e"/> 
...... 

, но я хочу использовать пользовательский макет, например:

<LinearLayout ......> 
<Button android:id="@+id/key_q" .../> 
<Button android:id="@+id/key_w" .../> 
</LinearLayout> 

Как я могу сделать как ключ?

+1

Возможный дубликат [Custom 'Keyboard', встроенный в приложение на Android] (http://stackoverflow.com/questions/3196511/custom-keyboard-built-in-an-application-on-android) – Elltz

ответ

2

В onCreateInputView вашего InputMethodService вы можете вернуть любое представление, которое хотите, и это будет основной вид вашей клавиатуры. Вы не ограничены KeyboardView, на самом деле никакая основная клавиатура на самом деле не использует это, это слишком ограничивает. Надуйте все, что хотите, и верните его из onCreateInputView.

+0

Так что Я создаю класс extends android.inputmethodservice.Keyboard? потому что я думаю, что Keyboard.class работает с KeyboardView.class, спасибо за помощь. – Inso

+0

Нет, android.inputmethodservice.InputMethodService. Это базовый класс для любой клавиатуры. Клавиатура и клавиатура представляют собой ярлыки для создания очень простых клавиатур, но если вы делаете что-нибудь сложное, вы их не будете использовать - они недостаточно гибкие. –

+0

Спасибо за помощь! – Inso

0

Вам нужно будет создать класс, который расширяет KeyboardView и задает необходимый макет. Таким образом вы можете сделать макет так, как хотите, как и любой другой макет.

См. Это thread, чтобы получить коды.

Смежные вопросы