Ответ 1
Что вы ищете - это "предварительный просмотр ключа",
Я предполагаю, что вы используете KeyboardView
для создания пользовательской клавиатуры. Вы можете включить предварительный просмотр ключа, вызвав setPreviewEnabled (boolean previewEnabled), это должно быть что-то вроде этого: mKeyboardView.setPreviewEnabled(true);
Edit:
Я думаю, что эта ссылка поможет вам в вашей реализации и объяснит более подробно то, что я пытался.
Сначала вы создаете макет для клавиатуры, обычно он содержит только клавиатуруView:
<?xml version="1.0" encoding="UTF-8"?>
<android.inputmethodservice.KeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:keyPreviewLayout ="@layout/preview" />
И затем вы создаете еще один макет для предварительного просмотра:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:background="#ffff00"
android:textStyle="bold"
android:textSize="30sp">
</TextView>
После этого вы создаете свою клавиатуру в своем случае примерно так:
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="60dp">
<Row>
<Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/>
<Key android:codes="50" android:keyLabel="2"/>
<Key android:codes="51" android:keyLabel="3"/>
</Row>
<Row>
<Key android:codes="52" android:keyLabel="4"/>
<Key android:codes="53" android:keyLabel="5"/>
<Key android:codes="54" android:keyLabel="6"/>
</Row>
<Row>
<Key android:codes="55" android:keyLabel="7"/>
<Key android:codes="56" android:keyLabel="8"/>
<Key android:codes="57" android:keyLabel="9"/>
</Row>
</Keyboard>
Наконец, в вашем java-коде вы раздуваете свой клавиатурный экран или получаете его по его идентификатору, если он включен в фрагмент или макет активности. и вы установили для него клавиатуру.
kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null);
keyboard = new Keyboard(this, R.xml.numeric);
kv.setKeyboard(keyboard);
kv.setOnKeyboardActionListener(this);
Желаем удачи.