Как изменить цвет фона клавиши для Android-клавиатуры?

Я использую пользовательскую клавиатуру на Android. Я только что прочитал документацию на «developer.android.com» и увидел образец с мягкой клавиатурой. Все, что я могу – это изменить фон на клавиатуре, изменить расположение кнопок, установить keyIcon вместо keyLabel на ключ.

Но я все еще не могу изменить фон и цвет клавиши.

Пожалуйста, напишите пример кода XML или источника. Благодаря!

Мой образец, где я меняю фон:

public class GBInput extends InputMethodService implements KeyboardView.OnKeyboardActionListener{ ... private GBKeyboardView mInputView; @Override public View onCreateInputView() { mInputView = (GBKeyboardView) getLayoutInflater().inflate(R.layout.input, null); mInputView.setOnKeyboardActionListener(this); mInputView.setKeyboard(mQwertyKeyboard); mInputView.setBackgroundResource(R.color.keyboard_background); return mInputView; } ... } 

И мне нужно что-то вроде этого: Введите описание изображения здесь

Изображения для всех кнопок – это плохая идея, поэтому я хочу найти лучшую проблему.

Добавьте эту строку кода в свой файл input.xml

 android:keyBackground="@drawable/samplekeybackground" 

Поэтому ваш input.xml должен выглядеть похожим на это.

 <com.example.keyboard.LatinKeyboardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/keyboard" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:keyPreviewLayout="@layout/input_key_preview" android:keyBackground="@drawable/samplekeybackground" /> 

Если у вас уже есть возможность использовать отличный вариант, в противном случае это образец основного фона, который даст результаты, подобные вашему примеру.

  <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- Non focused states --> <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/normal" /> <!-- Pressed state --> <item android:state_pressed="true" android:drawable="@drawable/pressed" /></selector> 

Если вы хотите все в xml, вы можете использовать форму xml, как показано ниже. рисуем / normal.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="4dp" android:color="#000000" /> <solid android:color="#FFFFFF"/> </shape> 

И drawable / press.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="4dp" android:color="#A3D9F3" /> <solid android:color="#4ABCE8"/> </shape> 
 <com.example.keyboard.LatinKeyboardView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/keyboard" android:layout_alignParentBottom="true" android:layout_width="fill_parent" android:layout_height="wrap_content" android:keyPreviewLayout="@layout/input_key_preview" android:keyBackground="@drawable/samplekeybackground" android:keyTextColor="#000000" /> 

Просто добавьте эту строку в свою клавиатуру, чтобы изменить цвет текста на черный

андроид: keyTextColor = "# 000000"