我正在开发自定义键盘应用程序。我需要在KeyboardView类中为键或背景颜色设置不同的主题,并在SoftKeyboard中的onCreateInputView()中获取键颜色,扩展InputMethodService类。
但是我没有按照键码获取如何获取特定键,因此我可以更改特定键的颜色或背景。
答案 0 :(得分:9)
在任何不同的输入布局上使用android:keyBackground =“..”
示例:
input.xml中:
<com.example.KeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:keyBackground="@drawable/blue_key"
/>
input1.xml:
<com.example.KeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_alignParentBottom="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:keyBackground="@drawable/red_key"
/>
然后在OnCreateInputView方法:
@Override public View onCreateInputView() {
if(theme == 1)
mInputView = (KeyboardView) getLayoutInflater().inflate(R.xml.input , null);
else
mInputView = (KeyboardView) getLayoutInflater().inflate(R.xml.input1 , null);
mInputView.setOnKeyboardActionListener( this);
mInputView.setKeyboard(mQwertyKeyboard);
mComposing.setLength(0);
return mInputView;
}
并在onStartInput方法的末尾添加:
setInputView(onCreateInputView());
如果您已经完成了它,您需要的是为特殊键设置不同的背景。也许我写的问题的解决方案可以帮助你:https://stackoverflow.com/a/18354298/2683898
祝你好运! :)