2

Я хочу изменить клавиатуру по умолчанию (независимо от того, что на вашем устройстве), чтобы отображаемые цвета отражали мои приложения, охватывающие тему лучше. например, белый фон, светло-голубые клавиши, которые при нажатии становятся синими.стиль размещения клавиатуры по умолчанию для Android

Использования этого tutorial Я создал пользовательские клавиатуры и я в состоянии изменить keybackground.xml, чтобы настроить цвета кнопок на KeyboardView и т.д.

<android.inputmethodservice.KeyboardView 
    android:id="@+id/keyboardview" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_centerHorizontal="true" 
    android:focusable="true" 
    android:focusableInTouchMode="true" 
    android:visibility="gone" 
android:keyBackground="@drawable/keybackground"/> 

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

Один из возможных способов, которые я рассматривал, заключается в замене следующей строки (поясняется в ссылке на учебное пособие).

mKeyboardView.setKeyboard(new Keyboard(mHostActivity, layoutid)); 

с помощью другого метода создания/получения по умолчанию Клавиатуры.

Редактировать

Я только нужна эта клавиатура будет отображаться в моем приложении.

+1

Если я правильно понял, вы хотите предоставить свои собственные ресурсы для системной клавиатуры, установленной на вашем устройстве (это просто приложение). Нет стандартного способа, если это приложение для клавиатуры не поддерживает некоторые формы расширений. –

ответ

0

Вы не можете делать то, что планируете делать в андроиде, так как это будет массивное отверстие для безопасности. Ваше приложение не может изменить клавиатуру по умолчанию. Что вы можете сделать, создайте новый пользовательский стиль клавиатуры и добавьте его в качестве выбора для пользователя. Пользователь должен будет перейти к настройкам-> клавиатуре и выбрать клавиатуру. Вам нужно будет реализовать InputMethodService. Будьте осторожны, но это непростая задача. Много усилий идет на это.

+0

Я уже создал пользовательскую клавиатуру для не-qwerty-приложений. я не хочу менять клавиатуру или обращаться к обработке событий, просто примените мой keyBackground к умолчанию. чтобы изменить цвет фона/клавиши. –

3

Вы не можете изменить цвета любой из установленных клавиатур (по умолчанию или нет), хотя некоторые из них могут позволить вам создавать темы для них как своего рода расширения, но это будет то, что пользователь установит отдельно от вашего приложения. Приложения для клавиатуры - это отдельные приложения, а Android не дает вам прямого доступа к их макетам. Конечно, вы можете создать свое собственное приложение для клавиатуры, но это не имеет смысла делать это в вашем случае (поскольку вы только после настройки цветов для соответствия вашему приложению).

Кроме того, было бы плохо UX, если бы каждое приложение изменило цвета клавиатуры. Предположительно, пользователь выбрал клавиатуру и тему, которая соответствует его визуальным потребностям, поэтому было бы неприятно, если бы она изменилась между приложениями (представьте, если вы являетесь пользователем с цветным слепым, а приложение меняет клавиатуру на цвета, которые вы не можете отличить так что вы больше не можете видеть, что есть на ключах!).

0

Если вы просто хотите добавить клавиатуру в свое приложение, добавьте раскладку клавиатуры в свой макет с видимостью: нет. Когда пользователь нажимает на поле edittext, потребляет событие, идущее на клавиатуру по умолчанию, и вместо этого отображает вашу клавиатуру. Следите за нажатыми клавишами и добавляйте их там, где вам нужно. Не забудьте скрыть клавиатуру, когда пользователь нажимает на поле edittext.

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