Ну, вы, конечно, можете создать пользовательскую программную клавиатуру, но я думаю, что вы должны жить с тем, что есть в вашем сценарии. Создание нового ввода с клавиатуры для такого небольшого требования действительно будет накладными расходами на ваш проект.
Проверьте SDK Sample для SoftKeyboard для получения дополнительной информации о его создании. Вы всегда можете определить свою клавишу действия как кнопку для смайликов.
Вот пример кода прямо из проекта с открытым исходным кодом Android:
<EditText
android:id="@+id/embedded_text_editor"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:autoText="true"
android:capitalize="sentences"
android:maxLines="4"
android:inputType="textShortMessage|textAutoCorrect|textCapSentences|textMultiLine"
android:imeOptions="actionSend|flagNoEnterAction"
android:maxLength="1000"
/>
обратите внимание на android:inputType="textShortMessage"
, который делает трюк и создает кнопку смайлика в качестве кнопки действия.