6

我正在开发自定义键盘应用程序。我需要在 KeyboardView 类中为键或背景颜色设置不同的主题,并在 SoftKeyboard 扩展 InputMethodService 类的 onCreateInputView() 处获取键颜色。

但是,我不知道如何根据键码获取特定键,因此我可以更改特定键的颜色或背景。

4

1 回答 1

10

在任何不同的输入布局上使用 android:keyBackground=".."

例子:

输入.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"
        />

输入1.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

祝你好运!:)

于 2013-08-21T10:34:57.877 回答